CouchDB - Panduan Cepat

Sistem manajemen basis data menyediakan mekanisme untuk penyimpanan dan pengambilan data. Ada tiga jenis utama sistem manajemen basis data yaitu RDBMS (Sistem Manajemen Basis Data Relasional), OLAP (Sistem Pemrosesan Analitik Online) dan NoSQL.

RDBMS

RDBMS adalah singkatan dari Relational Database Management System. RDBMS adalah dasar untuk SQL, dan untuk semua sistem database modern seperti MS SQL Server, IBM DB2, Oracle, MySQL, dan Microsoft Access.

Sistem manajemen basis data relasional (RDBMS) adalah sistem manajemen basis data (DBMS) yang didasarkan pada model relasional seperti yang diperkenalkan oleh EF Codd.

Data di RDBMS disimpan dalam objek database yang disebut tables. Tabel adalah kumpulan entri data terkait dan terdiri dari kolom dan baris. Ini hanya menyimpan data terstruktur.

OLAP

Server Pemrosesan Analitik Online (OLAP) didasarkan pada model data multidimensi. Ini memungkinkan para manajer dan analis untuk mendapatkan wawasan informasi melalui akses informasi yang cepat, konsisten, dan interaktif.

Database NoSQL

Database NoSQL (terkadang disebut Not Only SQL) adalah database yang menyediakan mekanisme untuk menyimpan dan mengambil data selain relasi tabel yang digunakan dalam database relasional. Basis data ini bebas skema, mendukung replikasi mudah, memiliki API sederhana, pada akhirnya konsisten, dan dapat menangani data dalam jumlah besar (data besar).

Tujuan utama dari database NoSQL adalah memiliki:

  • Kesederhanaan desain,
  • Penskalaan horizontal, dan
  • Kontrol yang lebih baik atas ketersediaan.

Database NoSQL menggunakan struktur data yang berbeda dibandingkan dengan database relasional. Itu membuat beberapa operasi lebih cepat di NoSQL. Kesesuaian database NoSQL yang diberikan bergantung pada masalah yang harus diselesaikan. Basis data ini menyimpan data terstruktur dan data tidak terstruktur seperti file audio, file video, dokumen, dll. Basis data NoSQL ini diklasifikasikan menjadi tiga jenis dan dijelaskan di bawah ini.

Key-value Store- Basis data ini dirancang untuk menyimpan data dalam pasangan nilai kunci dan basis data ini tidak akan memiliki skema apa pun. Dalam database ini, setiap nilai data terdiri dari kunci yang diindeks dan nilai untuk kunci itu.

Contoh - BerkeleyDB, Cassandra, DynamoDB, Riak.

Column Store- Dalam database ini, data disimpan dalam sel yang dikelompokkan dalam kolom data, dan kolom ini selanjutnya dikelompokkan ke dalam keluarga Kolom. Keluarga kolom ini dapat berisi sejumlah kolom.

Contoh - BigTable, HBase, dan HyperTable.

Document Store- Ini adalah database yang dikembangkan berdasarkan ide dasar penyimpanan nilai kunci di mana "dokumen" berisi data yang lebih kompleks. Di sini, setiap dokumen diberi kunci unik, yang digunakan untuk mengambil dokumen. Ini dirancang untuk menyimpan, mengambil, dan mengelola informasi berorientasi dokumen, juga dikenal sebagai data semi-terstruktur.

Contoh - CouchDB dan MongoDB.

Apa itu CouchDB?

CouchDB adalah database open source yang dikembangkan oleh yayasan perangkat lunak Apache. Fokusnya adalah pada kemudahan penggunaan, merangkul web. Ini adalah database penyimpanan dokumen NoSQL.

Ia menggunakan JSON, untuk menyimpan data (dokumen), java script sebagai bahasa kuerinya untuk mengubah dokumen, protokol http untuk api untuk mengakses dokumen, menanyakan indeks dengan browser web. Ini adalah aplikasi multi master yang dirilis pada tahun 2005 dan menjadi proyek apache pada tahun 2008.

Mengapa CouchDB?

  • CouchDB memiliki REST API berbasis HTTP, yang membantu berkomunikasi dengan database dengan mudah. Dan struktur sederhana sumber daya dan metode HTTP (GET, PUT, DELETE) mudah dipahami dan digunakan.

  • Karena kami menyimpan data dalam struktur berbasis dokumen yang fleksibel, tidak perlu khawatir tentang struktur datanya.

  • Pengguna diberikan pemetaan data yang kuat, yang memungkinkan kueri, penggabungan, dan pemfilteran informasi.

  • CouchDB menyediakan replikasi yang mudah digunakan, yang dengannya Anda dapat menyalin, berbagi, dan menyinkronkan data antara database dan mesin.

Model data

  • Database adalah struktur / wadah data terluar di CouchDB.

  • Setiap database adalah kumpulan dokumen independen.

  • Setiap dokumen memiliki datanya sendiri dan skema mandiri.

  • Metadata dokumen berisi informasi revisi, yang memungkinkan untuk menggabungkan perbedaan yang terjadi saat database terputus.

  • CouchDB mengimplementasikan kontrol konkurensi multi versi, untuk menghindari keharusan mengunci bidang database selama penulisan.

Fitur CouchDB: Kurangi Konten

Penyimpanan Dokumen

CouchDB adalah database NoSQL penyimpanan dokumen. Ini menyediakan fasilitas untuk menyimpan dokumen dengan nama yang unik, dan juga menyediakan API yang disebut RESTful HTTP API untuk membaca dan memperbarui (menambah, mengedit, menghapus) dokumen database.

Di CouchDB, dokumen adalah unit utama data dan juga termasuk metadata. Bidang dokumen diberi nama unik dan berisi nilai dari berbagai jenis (teks, angka, Boolean, daftar, dll.), Dan tidak ada batasan yang ditetapkan untuk ukuran teks atau jumlah elemen.

Pembaruan dokumen (tambah, edit, hapus) mengikuti Atomicity, yaitu, mereka akan disimpan sepenuhnya atau tidak disimpan sama sekali. Basis data tidak akan memiliki dokumen yang sebagian disimpan atau diedit.

Struktur Dokumen Json

{
   "field" : "value",
   "field" : "value",
   "field" : "value",
}

Properti ACID

CouchDB berisi properti ACID sebagai salah satu fiturnya.

Konsistensi - Ketika data di CouchDB pernah dilakukan, maka data ini tidak akan diubah atau ditimpa. Dengan demikian, CouchDB memastikan bahwa file database akan selalu dalam keadaan yang konsisten.

Model Multi-Version Concurrency Control (MVCC) digunakan oleh CouchDB, karena itu klien akan melihat snapshot database yang konsisten dari awal hingga akhir operasi baca.

Setiap kali dokumen diperbarui, CouchDB memasukkan data ke dalam disk, dan header database yang diperbarui ditulis dalam dua potongan yang berurutan dan identik untuk membuat 4k pertama file, dan kemudian secara serentak di-flush ke disk. Pembaruan sebagian selama pembilasan akan dibuang.

Jika kegagalan terjadi saat melakukan tajuk, salinan yang masih ada dari tajuk identik sebelumnya akan tetap ada, memastikan koherensi dari semua data yang dilakukan sebelumnya. Kecuali area header, pemeriksaan atau perbaikan konsistensi setelah crash atau listrik mati tidak pernah diperlukan.

Pemadatan

Setiap kali ruang dalam file database terbuang percuma di atas batas tertentu, semua data aktif akan disalin (kloning) ke file baru. Ketika proses penyalinan selesai seluruhnya, maka file lama akan dibuang. Semua ini dilakukan dengan proses pemadatan. Basis data tetap online selama pemadatan dan semua pembaruan dan pembacaan diizinkan untuk diselesaikan dengan sukses.

Tampilan

Data di CouchDB disimpan dalam dokumen semi-terstruktur yang fleksibel dengan struktur implisit individual, tetapi ini adalah model dokumen sederhana untuk penyimpanan dan berbagi data. Jika kami ingin melihat data kami dalam berbagai cara, kami memerlukan cara untuk memfilter, mengatur, dan melaporkan data yang belum diuraikan ke dalam tabel.

Untuk mengatasi masalah ini, CouchDB menyediakan model tampilan. Tampilan adalah metode untuk menggabungkan dan melaporkan dokumen dalam database, dan dibuat sesuai permintaan untuk menggabungkan, menggabungkan, dan melaporkan dokumen database. Karena tampilan dibuat secara dinamis dan tidak memengaruhi dokumen yang mendasari, Anda dapat memiliki representasi tampilan yang berbeda dari data yang sama sebanyak yang Anda inginkan.

Sejarah

  • CouchDB ditulis dalam bahasa pemrograman Erlang.
  • Ini dimulai oleh Damien Katz pada tahun 2005.
  • CouchDB menjadi proyek Apache pada tahun 2008.

Versi CouchDB saat ini adalah 1.61.

Bab ini mengajarkan Anda cara menginstal CouchDB di windows serta sistem Linux.

Menginstal CouchDB di Windows

Unduh CouchDB

Situs web resmi untuk CouchDB adalah https://couchdb.apache.org. Jika Anda mengklik tautan yang diberikan, Anda bisa mendapatkan halaman beranda situs web resmi CouchDB seperti yang ditunjukkan di bawah ini.

Jika Anda mengklik tombol unduh yang akan mengarah ke halaman di mana tersedia tautan unduhan CouchDB dalam berbagai format. Cuplikan berikut menggambarkan hal yang sama.

Pilih tautan unduhan untuk sistem windows dan pilih salah satu cermin yang disediakan untuk mulai mengunduh.

Menginstal CouchDB

CouchDB akan diunduh ke sistem Anda dalam bentuk file setup bernama setup-couchdb-1.6.1_R16B02.exe. Jalankan file setup dan lanjutkan dengan instalasi.

Setelah instalasi, buka antarmuka web bawaan CouchDB dengan mengunjungi yang berikut ini link: http://127.0.0.1:5984/. Jika semuanya berjalan dengan baik, ini akan memberi Anda halaman web, yang memiliki keluaran sebagai berikut.

{
   "couchdb":"Welcome","uuid":"c8d48ac61bb497f4692b346e0f400d60",
   "version":"1.6.1",
   "vendor":{
      "version":"1.6.1","name":"The Apache Software Foundation"
   }
}

Anda dapat berinteraksi dengan antarmuka web CouchDB dengan menggunakan url berikut -

http://127.0.0.1:5984/_utils/

Ini menunjukkan kepada Anda halaman indeks Futon, yang merupakan antarmuka web CouchDB.

Menginstal CouchDB di Sistem Linux

Untuk banyak sistem rasa Linux, mereka menyediakan CouchDB secara internal. Untuk menginstal CouchDB ini, ikuti instruksi.

Di Ubuntu dan Debian Anda dapat menggunakan -

sudo aptitude install couchdb

Di Gentoo Linux tersedia ebuild CouchDB -

sudo emerge couchdb

Jika sistem Linux Anda tidak memiliki CouchDB, ikuti bagian selanjutnya untuk menginstal CouchDB dan dependensinya.

Menginstal Ketergantungan CouchDB

Berikut ini adalah daftar dependensi yang akan diinstal untuk mendapatkan CouchDB di sistem Anda−

  • Erlang OTP
  • ICU
  • OpenSSL
  • Mozilla SpiderMonkey
  • GNU Make
  • Koleksi Kompiler GNU
  • libcurl
  • help2man
  • Python untuk dokumen
  • Python Sphinx

Untuk menginstal dependensi ini, ketikkan perintah berikut di terminal. Di sini kami menggunakan Centos 6.5 dan perintah berikut akan menginstal perangkat lunak yang diperlukan yang kompatibel dengan Centos 6.5.

$sudo yum install autoconf $sudo yum install autoconf-archive
$sudo yum install automake $sudo yum install curl-devel
$sudo yum install erlang-asn1 $sudo yum install erlang-erts
$sudo yum install erlang-eunit $sudo yum install erlang-os_mon
$sudo yum install erlang-xmerl $sudo yum install help2man
$sudo yum install js-devel $sudo yum install libicu-devel
$sudo yum install libtool $sudo yum install perl-Test-Harness

Note −Untuk semua perintah ini, Anda perlu menggunakan sudo. Prosedur berikut mengubah pengguna biasa menjadi sudoer.

  • Login sebagai root di pengguna admin

  • Buka sudo file menggunakan perintah berikut -

visudo
  • Kemudian edit seperti yang ditunjukkan di bawah ini untuk memberi pengguna Anda hak akses sudoer -
Hadoop All=(All) All , and press esc : x to write the changes to the file.

Setelah mengunduh semua dependensi di sistem Anda, unduh CouchDB dengan mengikuti instruksi yang diberikan.

Mendownload CouchDB

Yayasan perangkat lunak Apache tidak akan menyediakan file .tar lengkap untuk CouchDB, jadi Anda harus menginstalnya dari sumbernya.

Buat direktori baru untuk menginstal CouchDB, telusuri direktori yang dibuat tersebut dan unduh sumber CouchDB dengan menjalankan perintah berikut -

$ cd $ mkdir CouchDB
$ cd CouchDB/ $ wget
http://www.google.com/url?q=http%3A%2F%2Fwww.apache.org%2Fdist%2Fcouchdb%2Fsource%2F1.6.1%2Fapache-couchdb-1.6.1.tar.gz

Ini akan mengunduh file sumber CouchDB ke sistem Anda. Sekarang buka zipapache-couchdb-1.6.1.tar.gz seperti gambar dibawah.

$ tar zxvf apache-couchdb-1.6.1.tar.gz

Mengonfigurasi CouchDB

Untuk mengkonfigurasi CouchDB, lakukan hal berikut -

  • Jelajahi folder utama CouchDB.
  • Masuk sebagai pengguna super.
  • Konfigurasi menggunakan ./configure prompt seperti yang ditunjukkan di bawah ini -
$ cd apache-couchdb-1.6.1
$ su
Password:
# ./configure --with-erlang=/usr/lib64/erlang/usr/include/

Ini memberi Anda output berikut yang mirip dengan yang ditunjukkan di bawah ini dengan baris penutup yang mengatakan - You have configured Apache CouchDB, time to relax.

# ./configure --with-erlang=/usr/lib64/erlang/usr/include/

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
………………………………………………………..
……………………….
config.status: creating var/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: creating src/snappy/google-snappy/config.h
config.status: src/snappy/google-snappy/config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

You have configured Apache CouchDB, time to relax.

Run `make && sudo make install' to install.

Menginstal CouchDB

Sekarang ketik perintah berikut untuk menginstal CouchDB di sistem Anda.

# make && sudo make install

Ini menginstal CouchDB di sistem Anda dengan baris penutup mengatakan - You have installed Apache CouchDB, time to relax.

Memulai CouchDB

Untuk memulai CouchDB, telusuri folder beranda CouchDB dan gunakan perintah berikut -

$ cd apache-couchdb-1.6.1 $ cd etc
$ couchdb start

Ini memulai CouchDB yang memberikan output berikut: -

Apache CouchDB 1.6.1 (LogLevel=info) is starting.
Apache CouchDB has started. Time to relax.
[info] [lt;0.31.0gt;] Apache CouchDB has started on http://127.0.0.1:5984/
[info] [lt;0.112.0gt;] 127.0.0.1 - - GET / 200
[info] [lt;0.112.0gt;] 127.0.0.1 - - GET /favicon.ico 200

Verifikasi

Karena CouchDB adalah antarmuka web, coba ketik url beranda berikut di browser.

http://127.0.0.1:5984/

Ini menghasilkan keluaran berikut -

{
   "couchdb":"Welcome",
   "uuid":"8f0d59acd0e179f5e9f0075fa1f5e804",
   "version":"1.6.1",
   "vendor":{
      "name":"The Apache Software Foundation",
      "version":"1.6.1"
   }
}

Utilitas cURL

Utilitas cURL adalah cara untuk berkomunikasi dengan CouchDB.

Ini adalah alat untuk mentransfer data dari atau ke server, menggunakan salah satu protokol yang didukung (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP atau FILE). Perintah dirancang untuk bekerja tanpa interaksi pengguna. cURL menawarkan banyak trik berguna seperti dukungan proxy, otentikasi pengguna, unggahan ftp, pos HTTP, koneksi SSL (https :), cookie, resume transfer file, dan banyak lagi.

Utilitas cURL tersedia di sistem operasi seperti UNIX, Linux, Mac OS X dan Windows. Ini adalah utilitas baris perintah yang digunakan pengguna yang dapat mengakses protokol HTTP langsung dari baris perintah. Bab ini mengajarkan Anda cara menggunakan utilitas cURL.

Menggunakan cURL Utility

Anda dapat mengakses situs web apa pun menggunakan utilitas cURL hanya dengan mengetik cURL diikuti dengan alamat situs web seperti yang ditunjukkan di bawah ini -

curl www.tutorialspoint.com/

Secara default, utilitas cURL mengembalikan kode sumber dari halaman yang diminta. Ini menampilkan kode ini di jendela terminal.

Opsi Utilitas cURL

Utilitas cURL menyediakan berbagai opsi untuk digunakan, dan Anda dapat melihatnya di bantuan utilitas cURL.

Kode berikut menunjukkan beberapa bagian dari bantuan cURL.

$ curl --help
Usage: curl [options...] <url>
Options: (H) means HTTP/HTTPS only, (F) means FTP only
      --anyauth Pick "any" authentication method (H)
   -a/--append Append to target file when uploading (F/SFTP)
      --basic Use HTTP Basic Authentication (H)
      --cacert <file> CA certificate to verify peer against (SSL)
-d/--data <data> HTTP POST data (H)
      --data-ascii <data> HTTP POST ASCII data (H)
      --data-binary <data> HTTP POST binary data (H)
      --data-urlencode <name=data/name@filename> HTTP POST data
urlencoded (H)
      --delegation STRING GSS-API delegation permission
      --digest Use HTTP Digest Authentication (H)
      --disable-eprt Inhibit using EPRT or LPRT (F)
      --disable-epsv Inhibit using EPSV (F)

   -F/--form <name=content> Specify HTTP multipart POST data (H)
      --form-string <name=string> Specify HTTP multipart POST data (H)
      --ftp-account <data> Account data to send when requested by server
(F)
      --ftp-alternative-to-user <cmd> String to replace "USER [name]" (F)
      --ftp-create-dirs Create the remote dirs if not present (F)
      --ftp-method [multi cwd/no cwd/single cwd] Control CWD usage (F)
      --ftp-pasv Use PASV/EPSV instead of PORT (F)

   -G/--get Send the -d data with a HTTP GET (H)

   -H/--header <line> Custom header to pass to server (H)
   -I/--head Show document info only
   -h/--help This help text
      --hostpubmd5 <md5> Hex encoded MD5 string of the host public key.
(SSH)
   -0/--http1.0 Use HTTP 1.0 (H)
      --ignore-content-length Ignore the HTTP Content-Length header
   -i/--include Include protocol headers in the output (H/F)

   -M/--manual Display the full manual

   -o/--output <file> Write output to <file> instead of stdout
      --pass <pass> Pass phrase for the private key (SSL/SSH)
      --post301 Do not switch to GET after following a 301
redirect (H)
      --post302 Do not switch to GET after following a 302
redirect (H)
   -O/--remote-name Write output to a file named as the remote file
      --remote-name-all Use the remote file name for all URLs
   -R/--remote-time Set the remote file's time on the local output
   -X/--request <command> Specify request command to use
      --retry <num> Retry request <num> times if transient problems
occur
      --retry-delay <seconds> When retrying, wait this many seconds
between each
      --retry-max-time <seconds> Retry only within this period
   -T/--upload-file <file> Transfer <file> to remote site
      --url <URL> Set URL to work with
   -B/--use-ascii Use ASCII/text transfer

Saat berkomunikasi dengan CouchDB, opsi utilitas cURL tertentu digunakan secara ekstensif. Berikut adalah uraian singkat dari beberapa opsi penting dari utilitas cURL termasuk yang digunakan oleh CouchDB.

-X bendera

(HTTP) Menentukan metode permintaan khusus yang digunakan saat berkomunikasi dengan server HTTP. Permintaan yang ditentukan digunakan sebagai ganti metode yang digunakan (yang defaultnya adalah GET). Baca spesifikasi HTTP 1.1 untuk detail dan penjelasannya.

(FTP) Menentukan perintah FTP kustom untuk digunakan sebagai ganti LIST saat melakukan daftar file dengan ftp.

-H

(HTTP) Header ekstra digunakan saat membuka halaman web. Perhatikan bahwa jika Anda menambahkan tajuk khusus yang memiliki nama yang sama dengan salah satu tajuk internal yang akan digunakan cURL, tajuk yang disetel secara eksternal akan digunakan, bukan yang internal. Hal ini memungkinkan Anda untuk membuat pekerjaan yang lebih rumit daripada yang biasanya dilakukan cURL. Anda tidak boleh mengganti tajuk yang disetel secara internal tanpa benar-benar mengetahui apa yang Anda lakukan. Mengganti tajuk internal dengan tajuk tanpa konten di sisi kanan titik dua, akan mencegah tajuk tersebut muncul.

cURL memastikan bahwa setiap header yang Anda tambahkan / ganti dikirim dengan penanda garis akhir yang tepat. Anda tidak harus menambahkannya sebagai bagian dari konten header atau menambahkan baris baru atau carriage return untuk mengacaukan hal-hal.

Lihat juga opsi -A / - user-agent dan -e / - referer.

Opsi ini dapat digunakan beberapa kali untuk menambah / mengganti / menghapus beberapa header.

bendera -d

Dengan menggunakan flag cURL ini, Anda dapat mengirim data bersama dengan permintaan HTTP POST ke server, seolah-olah itu diisi oleh pengguna dalam formulir dan dikirimkan.

Example

Misalkan ada sebuah website dan Anda ingin login ke dalamnya atau mengirimkan beberapa data ke website tersebut menggunakan flag –d dari utilitas cURL seperti gambar di bawah ini.

curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint

Ini mengirimkan potongan posting yang terlihat seperti "userid=001&password=tutorialspoint". Demikian juga Anda juga bisa mengirim dokumen (JSON) menggunakan -d flag.

-o bendera

Dengan menggunakan tanda ini, cURL menulis keluaran permintaan ke sebuah file.

Example

Contoh berikut menunjukkan penggunaan -o bendera utilitas cURL.

$ curl -o example.html www.tutorialspoint.com/index.htm 
% Total % Received % Xferd Average Speed Time Time Time Current 
      Dload Upload Total Spent Left Speed
100 81193 0 81193 0 0 48168 0 --:--:-- 0:00:01 --:--:--
58077

Ini mendapatkan kode sumber dari beranda tutorialspoint.com, membuat file bernama example.com dan menyimpan hasilnya dalam file bernama example.html.

Berikut adalah snapshot dari example.html.

-HAI

Bendera ini mirip dengan –o, satu-satunya perbedaan adalah dengan tanda ini, file baru dengan nama yang sama dengan url yang diminta telah dibuat, dan kode sumber dari url yang diminta akan disalin ke sana.

Example

Contoh berikut menunjukkan penggunaan -O bendera utilitas cURL.

$ curl -O www.tutorialspoint.com/index.htm
% Total % Received % Xferd Average Speed Time Time Time Current
      Dload Upload Total Spent Left
Speed
100 81285 0 81285 0 0 49794 0 --:--:-- 0:00:01 --:--:--
60077

Ini membuat file baru dengan nama index.htm dan menyimpan kode sumber dari halaman indeks tutorialspoint.com di dalamnya.

Halo CouchDB

Anda dapat mengakses beranda CouchDB dengan mengirimkan permintaan GET ke instans CouchDB yang diinstal. Pertama-tama pastikan Anda telah menginstal CouchDB di lingkungan Linux Anda dan berjalan dengan sukses, lalu gunakan sintaks berikut untuk mengirim permintaan get ke instans CouchDB.

curl http://127.0.0.1:5984/

Ini memberi Anda dokumen JSON seperti yang ditunjukkan di bawah ini di mana CouchDB menentukan detail seperti nomor versi, nama vendor, dan versi perangkat lunak.

$ curl http://127.0.0.1:5984/
{
   "couchdb" : "Welcome",
   "uuid" : "8f0d59acd0e179f5e9f0075fa1f5e804",
   "version" : "1.6.1",
   "vendor" : {
      "name":"The Apache Software Foundation",
      "version":"1.6.1"
   }
}

Daftar Semua Database

Anda bisa mendapatkan daftar semua database yang dibuat, dengan mengirimkan permintaan get bersama dengan stringnya "_all_dbs string ". Berikut ini adalah sintaks untuk mendapatkan daftar semua database di CouchDB.

curl -X GET http://127.0.0.1:5984/_all_dbs

Ini memberi Anda daftar semua database di CouchDB seperti yang ditunjukkan di bawah ini.

$ curl -X GET http://127.0.0.1:5984/_all_dbs
[ "_replicator" , "_users" ]

Membuat Database

Anda dapat membuat database di CouchDB menggunakan cURL dengan header PUT menggunakan sintaks berikut -

$ curl -X PUT http://127.0.0.1:5984/database_name

Contoh

Sebagai contoh, dengan menggunakan sintaks yang diberikan di atas, buat database dengan nama my_database seperti gambar dibawah.

$ curl -X PUT http://127.0.0.1:5984/my_database
{"ok":true}

Verifikasi

Verifikasi apakah database dibuat, dengan membuat daftar semua database seperti yang ditunjukkan di bawah ini. Di sini Anda dapat mengamati nama database yang baru dibuat,"my_database" dalam daftar

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , "_users" , "my_database" ]

Mendapatkan Info Database

Anda bisa mendapatkan informasi tentang database menggunakan permintaan get bersama dengan nama database. Berikut sintaks untuk mendapatkan informasi database.

Contoh

Sebagai contoh mari kita dapatkan informasi dari database bernama my_databaseseperti gambar dibawah. Di sini Anda bisa mendapatkan informasi tentang database Anda sebagai tanggapan.

$ curl -X GET http://127.0.0.1:5984/my_database

{
   "db_name" : "my_database",
   "doc_count" : 0,
   "doc_del_count" : 0,
   "update_seq" : 0,
   "purge_seq" : 0,
   "compact_running" : false,
   "disk_size" : 79,
   "data_size" : 0,
   "instance_start_time" : "1423628520835029",
   "disk_format_version" : 6,
   "committed_update_seq" : 0
 }

Futon

Futon adalah built-in, berbasis web, antarmuka administrasi CouchDB. Ini menyediakan antarmuka grafis sederhana yang dapat digunakan untuk berinteraksi dengan CouchDB. Ini adalah antarmuka yang naif dan menyediakan akses penuh ke semua fitur CouchDB. Berikut adalah daftar fitur tersebut -

Databases −
  • Membuat database.
  • Hancurkan database.
Documents −
  • Membuat dokumen.
  • Memperbarui dokumen.
  • Mengedit dokumen.
  • Menghapus dokumen.

Mulai Futon

Pastikan CouchDB sedang berjalan dan kemudian buka url berikut di browser -

http://127.0.0.1:5984/_utils/

Jika Anda membuka url ini, ini akan menampilkan beranda Futon seperti yang ditunjukkan di bawah ini -

  • Di sisi kiri halaman ini Anda dapat mengamati daftar semua database CouchDB saat ini. Dalam ilustrasi ini, kami memiliki database bernamamy_database, bersama dengan database yang ditentukan sistem _replicator dan _user.

  • Di sisi kanan Anda dapat melihat yang berikut -

    • Tools - Di bagian ini Anda dapat menemukan Configuration untuk mengkonfigurasi CouchDB, Replicator untuk melakukan ulangan, dan Status untuk memverifikasi status CouchDB dan modifikasi terbaru yang dilakukan pada CouchDB.

    • Documentation - Bagian ini berisi dokumentasi lengkap untuk versi terbaru CouchDB.

    • Diagnostics - Di bawah ini, Anda dapat memverifikasi instalasi CouchDB.

    • Recent Databases - Di bawah ini Anda dapat menemukan nama-nama database yang baru ditambahkan.

Dengan menggunakan header permintaan HTTP, Anda dapat berkomunikasi dengan CouchDB. Melalui request tersebut kita dapat mengambil data dari database, menyimpan data ke dalam database dalam bentuk dokumen, dan kita dapat melihat serta memformat dokumen yang disimpan dalam database.

Format Permintaan HTTP

Saat berkomunikasi dengan database kami akan menggunakan format permintaan yang berbeda seperti get, head, post, put, delete, dan copy. Untuk semua operasi di CouchDB, data masukan dan struktur data keluaran akan berupa objek JavaScript Object Notation (JSON).

Berikut adalah format permintaan berbeda dari Protokol HTTP yang digunakan untuk berkomunikasi dengan CouchDB.

  • GET- Format ini digunakan untuk mendapatkan item tertentu. Untuk mendapatkan item yang berbeda, Anda harus mengirimkan pola url tertentu. Di CouchDB menggunakan permintaan GET ini, kita bisa mendapatkan item statis, dokumen dan konfigurasi database, dan informasi statistik dalam bentuk dokumen JSON (dalam banyak kasus).

  • HEAD - Metode HEAD digunakan untuk mendapatkan header HTTP dari permintaan GET tanpa isi respons.

  • POST- Permintaan posting digunakan untuk mengunggah data. Di CouchDB menggunakan permintaan POST, Anda dapat mengatur nilai, mengunggah dokumen, mengatur nilai dokumen, dan juga dapat memulai perintah administrasi tertentu.

  • PUT - Dengan menggunakan permintaan PUT, Anda dapat membuat objek, database, dokumen, tampilan, dan dokumen desain baru.

  • DELETE - Menggunakan permintaan DELETE, Anda dapat menghapus dokumen, tampilan, dan dokumen desain.

  • COPY - Menggunakan metode COPY, Anda dapat menyalin dokumen dan objek.

Header Permintaan HTTP

Header HTTP harus disediakan untuk mendapatkan format dan pengkodean yang tepat. Saat mengirim permintaan ke server CouchDB, Anda dapat mengirim header permintaan Http bersama dengan permintaan tersebut. Berikut ini adalah header permintaan Http yang berbeda.

  • Content-type- Header ini digunakan untuk menentukan tipe konten dari data yang kami suplai ke server bersama dengan permintaan. Sebagian besar jenis konten yang kami kirimkan bersama dengan permintaan adalah jenis MIME atau JSON (application / json). Sangat disarankan untuk menggunakan Jenis konten pada permintaan.

  • Accept- Header ini digunakan untuk menentukan server, daftar tipe data yang dapat dipahami klien, sehingga server akan mengirimkan responsnya menggunakan tipe data tersebut. Secara umum di sini, Anda dapat mengirim daftar tipe data MIME yang diterima klien, dipisahkan oleh titik dua.

    Meskipun, menggunakan Terima dalam kueri CouchDB tidak diperlukan, sangat disarankan untuk memastikan bahwa data yang dikembalikan dapat diproses oleh klien.

Header Respons

Ini adalah header dari respons yang dikirim oleh server. Header ini memberikan informasi tentang konten yang dikirim oleh server sebagai tanggapan.

  • Content-type- Header ini menentukan tipe MIME dari data yang dikembalikan oleh server. Untuk sebagian besar permintaan, jenis MIME yang dikembalikan adalah teks / biasa.

  • Cache-control- Header ini menyarankan klien tentang memperlakukan informasi yang dikirim oleh server. CouchDB sebagian besar mengembalikan must-revalidate, yang menunjukkan bahwa informasi tersebut harus divalidasi ulang jika memungkinkan.

  • Content-length - Header ini mengembalikan panjang konten yang dikirim oleh server, dalam byte.

  • Etag - Header ini digunakan untuk menunjukkan revisi dokumen, atau tampilan.

Kode Status

Berikut adalah bentuk tabel dari kode status yang dikirim oleh header http dan deskripsinya.

Sr.No. Kode & Deskripsi Status
1

200 − OK

Status ini akan dikeluarkan jika permintaan berhasil diselesaikan.

2

201 − Created

Status ini akan dikeluarkan saat dokumen dibuat.

3

202 − Accepted

Status ini akan dikeluarkan saat permintaan diterima.

4

404 − Not Found

Status ini akan dikeluarkan ketika server tidak dapat menemukan konten yang diminta.

5

405 − Resource Not Allowed

Status ini dikeluarkan jika jenis permintaan HTTP yang digunakan tidak valid.

6

409 − Conflict

Status ini dikeluarkan setiap kali ada konflik pembaruan.

7

415 − Bad Content Type

Status ini menunjukkan bahwa jenis konten yang diminta tidak didukung oleh server.

8

500 − Internal Server Error

Status ini dikeluarkan setiap kali data yang dikirim dalam permintaan tidak valid.

Jalur URL HTTP

Ada jalur url tertentu yang dapat digunakan, Anda dapat berinteraksi dengan database secara langsung. Berikut adalah format tabel dari jalur url tersebut.

Sr.No. URL & Operasi
1

PUT /db

Url ini digunakan untuk membuat database baru.

2

GET /db

Url ini digunakan untuk mendapatkan informasi tentang database yang ada.

3

PUT /db/document

Url ini digunakan untuk membuat dokumen / mengupdate dokumen yang sudah ada.

4

GET /db/document

Url ini digunakan untuk mendapatkan dokumen.

5

DELETE /db/document

Url ini digunakan untuk menghapus dokumen tertentu dari database yang ditentukan.

6

GET /db/_design/design-doc

Url ini digunakan untuk mendapatkan definisi dokumen desain.

7

GET /db/_design/designdoc/_view/view-name

Url ini digunakan untuk mengakses tampilan, nama-tampilan dari dokumen desain dari database yang ditentukan.

Database adalah struktur data terluar di CouchDB tempat dokumen Anda disimpan. Anda dapat membuat database ini menggunakan utilitas cURL yang disediakan oleh CouchDB, serta Futon antarmuka web CouchDB.

Membuat Database menggunakan Utilitas cURL

Anda dapat membuat database di CouchDB dengan mengirimkan permintaan HTTP ke server menggunakan metode PUT melalui utilitas cURL. Berikut sintaks untuk membuat database -

$ curl -X PUT http://127.0.0.1:5984/database name

Menggunakan −Xkita dapat menentukan metode permintaan kustom HTTP yang akan digunakan. Dalam hal ini, kami menggunakan metode PUT. Saat kami menggunakan operasi / metode PUT, konten url menentukan nama objek yang kami buat menggunakan permintaan HTTP. Disini kita harus mengirimkan nama database menggunakan put request di url untuk membuat database.

Contoh

Menggunakan sintaks yang diberikan di atas jika Anda ingin membuat database dengan nama my_database, Anda dapat membuatnya sebagai berikut

curl -X PUT http://127.0.0.1:5984/my_database
{
   "ok":true
}

Sebagai tanggapan, server akan mengembalikan Anda dokumen JSON dengan konten “ok” - true menandakan operasi berhasil.

Verifikasi

Verifikasi apakah database dibuat, dengan membuat daftar semua database seperti yang ditunjukkan di bawah ini. Di sini Anda dapat mengamati nama database yang baru dibuat," my_database " dalam daftar.

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , " _users " , " my_database " ]

Membuat Database menggunakan Futon

Untuk membuat database, buka http://127.0.0.1:5984/_utils/. Anda akan mendapatkan halaman Ikhtisar / indeks CouchDB seperti yang ditunjukkan di bawah ini.

Di halaman ini, Anda dapat melihat daftar database di CouchDB, tombol pilihan Buat Database di sisi kiri.

Sekarang klik pada tautan buat basis data. Anda dapat melihat jendela popupCreate New Databasesmenanyakan nama database untuk database baru. Pilih nama apa pun yang mengikuti kriteria yang disebutkan. Di sini kami membuat database lain dengan nama tutorials_point. Klik pada tombol buat seperti yang ditunjukkan pada tangkapan layar berikut.

Menghapus Database menggunakan cURL Utility

Anda dapat menghapus database di CouchDB dengan mengirimkan permintaan ke server menggunakan metode DELETE melalui utilitas cURL. Berikut sintaks untuk membuat database -

$ curl -X DELETE http://127.0.0.1:5984/database name

Menggunakan −Xkita dapat menentukan metode permintaan khusus dari HTTP yang kita gunakan, saat berkomunikasi dengan server HTTP. Dalam kasus ini, kami menggunakan metode DELETE. Kirim url ke server dengan menentukan database yang akan dihapus di dalamnya.

Contoh

Asumsikan ada database bernama my_database2 di CouchDB. Menggunakan sintaks yang diberikan di atas jika Anda ingin menghapusnya, Anda dapat melakukannya sebagai berikut -

$ curl -X DELETE http://127.0.0.1:5984/my_database2
{
   "ok" : true
}

Sebagai tanggapan, server akan mengembalikan Anda dokumen JSON dengan konten “ok” - true menandakan operasi berhasil.

Verifikasi

Verifikasi apakah database dihapus dengan mendaftar semua database seperti yang ditunjukkan di bawah ini. Di sini Anda dapat mengamati nama database yang dihapus,"my_database" tidak ada dalam daftar.

$ curl -X GET http://127.0.0.1:5984/_all_dbs

[ "_replicator " , " _users " ]

Menghapus Database menggunakan Futon

Untuk menghapus database, buka http://127.0.0.1:5984/_utils/ url di mana Anda akan mendapatkan halaman Ikhtisar / indeks CouchDB seperti yang ditunjukkan di bawah ini.

Di sini Anda dapat melihat tiga database yang dibuat pengguna. Mari kita hapus database bernama tutorials_point2. Untuk menghapus database, pilih satu dari daftar database, dan klik di atasnya, yang akan mengarah ke halaman gambaran umum dari database yang dipilih di mana Anda dapat melihat berbagai operasi pada database. Tangkapan layar berikut menunjukkan hal yang sama -

Di antara mereka, Anda dapat menemukannya Delete Databasepilihan. Dengan mengkliknya Anda akan mendapatkan jendela popup, menanyakan apakah Anda yakin! Klik hapus, untuk menghapus database yang dipilih.

Dokumen adalah struktur data pusat CouchDB. Isi database akan disimpan dalam bentuk Dokumen, bukan tabel. Anda dapat membuat dokumen-dokumen ini menggunakan utilitas cURL yang disediakan oleh CouchDB, serta Futon. Bab ini membahas cara-cara membuat dokumen dalam database.

Setiap dokumen di CouchDB memiliki ID unik. Anda bisa memilih ID sendiri yang harus berbentuk string. Umumnya, UUID (Universal Unique IDentifier) ​​digunakan, yang merupakan nomor acak yang memiliki peluang paling kecil untuk membuat duplikat. Ini lebih disukai untuk menghindari tabrakan.

Membuat Dokumen menggunakan Utilitas cURL

Anda dapat membuat dokumen di CouchDB dengan mengirimkan permintaan HTTP ke server menggunakan metode PUT melalui utilitas cURL. Berikut ini adalah sintaks untuk membuat dokumen.

$ curl -X PUT http://127.0.0.1:5984/database name/"id" -d ' { document} '

Menggunakan −X, kita dapat menentukan metode permintaan kustom HTTP yang kita gunakan, saat berkomunikasi dengan server HTTP. Dalam hal ini, kami menggunakan metode PUT. Saat kami menggunakan metode PUT, konten url menentukan nama objek yang kami buat menggunakan permintaan HTTP. Di sini kami harus mengirimkan yang berikut -

  • Nama dari nama database tempat kita membuat dokumen.

  • ID dokumen.

  • Data dokumen. −doption digunakan untuk mengirim data / dokumen melalui request HTTP. Saat menulis dokumen, cukup masukkan pasangan Nilai-Bidang Anda dipisahkan oleh titik dua, dalam tanda kurung bunga seperti yang ditunjukkan di bawah ini -

{
   Name : Raju
   age : 23
   Designation : Designer
}

Contoh

Menggunakan sintaks yang diberikan di atas jika Anda ingin membuat dokumen dengan id 001 dalam database dengan nama my_database, Anda dapat membuatnya seperti gambar di bawah ini.

$ curl -X PUT http://127.0.0.1:5984/my_database/"001" -d
'{ " Name " : " Raju " , " age " :" 23 " , " Designation " : " Designer " }'

{"ok":true,"id":"001","rev":"1-1c2fae390fa5475d9b809301bbf3f25e"}

Tanggapan CouchDB untuk permintaan ini berisi tiga bidang -

  • "ok", menandakan operasi berhasil.

  • "id", yang menyimpan id dokumen dan

  • "rev",ini menunjukkan id revisi. Setiap kali Anda merevisi (memperbarui atau memodifikasi) dokumen a_revnilai akan dihasilkan oleh CouchDB. Jika Anda ingin memperbarui atau menghapus dokumen, CouchDB mengharapkan Anda untuk menyertakan file_revbidang revisi yang ingin Anda ubah. Ketika CouchDB menerima perubahan, itu akan menghasilkan nomor revisi baru. Mekanisme ini memastikan kontrol konkurensi.

Verifikasi

Jika Anda ingin melihat dokumen yang dibuat Anda bisa mendapatkannya menggunakan dokumen seperti yang ditunjukkan di bawah ini.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id": "001",
   "_rev": "1-3fcc78daac7a90803f0a5e383f4f1e1e",
   "Name": "Raju",
   "age": 23,
   "Designation": "Designer"
}

Membuat Dokumen menggunakan Futon

Untuk membuat dokumen, buka http://127.0.0.1:5984/_utils/ url untuk mendapatkan halaman Ikhtisar / indeks CouchDB seperti yang ditunjukkan di bawah ini.

Pilih database tempat Anda ingin membuat dokumen. Buka halaman Ikhtisar database dan pilihNew Document pilihan seperti yang ditunjukkan di bawah ini.

Jika Anda memilih New Documentopsi, CouchDB membuat dokumen database baru, memberinya id baru. Anda dapat mengedit nilai id dan dapat menetapkan nilai Anda sendiri dalam bentuk string. Dalam ilustrasi berikut, kami telah membuat dokumen baru dengan id 001.

Di halaman ini, Anda dapat mengamati tiga opsi - simpan Dokumen, Tambahkan Bidang dan Unggah Lampiran.

Tambahkan Bidang ke Dokumen

Untuk menambahkan bidang ke dokumen, klik Add Fieldpilihan. Setelah membuat database, Anda dapat menambahkan bidang ke dalamnya menggunakan opsi ini. Mengkliknya akan memberi Anda sepasang kotak teks, yaitu,Field, value.Anda dapat mengedit nilai-nilai ini dengan mengkliknya. Edit nilai tersebut dan ketik pasangan Nilai Bidang yang Anda inginkan. Klik pada tombol hijau untuk menyimpan nilai-nilai ini.

Dalam ilustrasi berikut, kami telah membuat tiga bidang Nama, usia dan, Penunjukan karyawan.

Simpan Dokumen

Anda dapat menyimpan perubahan yang dibuat pada dokumen dengan mengklik opsi ini. Setelah disimpan, id baru_rev akan dihasilkan seperti gambar di bawah ini.

Memperbarui Dokumen menggunakan cURL

Anda dapat memperbarui dokumen di CouchDB dengan mengirimkan permintaan HTTP ke server menggunakan metode PUT melalui utilitas cURL. Berikut ini adalah sintaks untuk memperbarui dokumen.

curl -X PUT http://127.0.0.1:5984/database_name/document_id/ -d '{ "field" : "value", "_rev" : "revision id" }'

Contoh

Misalkan ada dokumen dengan id 001 di database bernama my_database. Anda dapat menghapus ini seperti yang ditunjukkan di bawah ini.

Pertama-tama, dapatkan id revisi dari dokumen yang akan diperbarui. Anda dapat menemukan_rev dari dokumen di dokumen itu sendiri, oleh karena itu dapatkan dokumen seperti yang ditunjukkan di bawah ini.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id" : "001",
   "_rev" : "2-04d8eac1680d237ca25b68b36b8899d3 " ,
   "age" : "23"
}

Gunakan revisi id _rev dari dokumen untuk memperbarui dokumen. Di sini kami memperbarui usia dari 23 menjadi 24.

$ curl -X PUT http://127.0.0.1:5984/my_database/001/ -d
' { " age " : " 24 " , " _rev " : " 1-1c2fae390fa5475d9b809301bbf3f25e " } '

{ " ok " : true , " id " : " 001 " , " rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " }

Verifikasi

Untuk memverifikasi dokumen, dapatkan kembali dokumen menggunakan permintaan GET seperti yang ditunjukkan di bawah ini.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   " _id " : " 001 ",
   " _rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " ,
   " age " : " 23 "
 }
Note

Berikut adalah beberapa poin penting yang perlu diperhatikan saat memperbarui dokumen.

  • URL yang kami kirimkan dalam permintaan yang berisi nama database dan id dokumen.

  • Memperbarui dokumen yang sudah ada sama dengan memperbarui seluruh dokumen. Anda tidak dapat menambahkan bidang ke dokumen yang sudah ada. Anda hanya dapat menulis versi dokumen yang benar-benar baru ke dalam database dengan ID dokumen yang sama.

  • Kami harus memberikan nomor revisi sebagai bagian dari permintaan JSON.

  • Sebaliknya JSON berisi pesan sukses, ID dokumen yang diperbarui, dan informasi revisi baru. Jika Anda ingin memperbarui versi baru dokumen, Anda harus mengutip nomor revisi terbaru ini.

Memperbarui Dokumen menggunakan Futon

Untuk menghapus dokumen, buka http://127.0.0.1:5984/_utils/ url untuk mendapatkan halaman Ikhtisar / indeks CouchDB seperti yang ditunjukkan di bawah ini.

Pilih database di mana dokumen yang akan diperbarui ada dan klik itu. Di sini kami memperbarui dokumen dalam database bernamatutorials_point. Anda akan mendapatkan daftar dokumen di database seperti gambar di bawah ini.

Pilih dokumen yang ingin Anda perbarui dan klik di atasnya. Anda akan mendapatkan isi dokumen seperti di bawah ini.

Di sini, untuk memperbarui lokasi dari Delhi ke Hyderabad, klik pada kotak teks, edit bidang, dan klik tombol hijau untuk menyimpan perubahan seperti yang ditunjukkan di bawah ini.

Menghapus Dokumen menggunakan cURL Utility

Anda dapat menghapus dokumen di CouchDB dengan mengirimkan permintaan HTTP ke server menggunakan metode DELETE melalui utilitas cURL. Berikut ini adalah sintaks untuk menghapus dokumen.

curl -X DELETE http : // 127.0.0.1:5984 / database name/database id?_rev id

Menggunakan −X,kita dapat menentukan metode permintaan khusus HTTP yang kita gunakan, saat berkomunikasi dengan server HTTP. Dalam hal ini, kami menggunakan metode Hapus. Menghapus database saja /database_name/database_id/tidak cukup. Anda harus meneruskan id revisi terbaru melalui url. Untuk menyebutkan atribut dari setiap struktur data"?" digunakan.

Contoh

Misalkan ada dokumen di database bernama my_databasedengan id dokumen 001. Untuk menghapus dokumen ini, Anda harus mendapatkan rev id dokumen. Dapatkan data dokumen seperti yang ditunjukkan di bawah ini.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   " _id " : " 001 ",
   " _rev " : " 2-04d8eac1680d237ca25b68b36b8899d3 " ,
   " age " : " 23 "
}

Sekarang tentukan id revisi dari dokumen yang akan dihapus, id dokumen, dan nama database dari dokumen tersebut, seperti yang ditunjukkan di bawah ini -

$ curl -X DELETE http://127.0.0.1:5984/my_database/001?rev=1-
3fcc78daac7a90803f0a5e383f4f1e1e

{"ok":true,"id":"001","rev":"2-3a561d56de1ce3305d693bd15630bf96"}

Verifikasi

Untuk memverifikasi apakah dokumen dihapus, cobalah untuk mengambil dokumen dengan menggunakan GETmetode. Karena Anda mengambil dokumen yang dihapus, ini akan memberi Anda pesan kesalahan seperti yang ditunjukkan di bawah ini -

$ curl -X GET http://127.0.0.1:5984/my_database/001
{"error":"not_found","reason":"deleted"}

Menghapus Dokumen menggunakan Futon

Pertama-tama, verifikasi dokumen di database. Berikut adalah snapshot dari database bernamatutorials_point.

Di sini Anda bisa mengamati, database terdiri dari tiga dokumen. Untuk menghapus salah satu dokumen, katakan003, lakukan hal berikut -

  • Klik pada dokumen tersebut, Anda akan mendapatkan halaman yang menampilkan isi dokumen yang dipilih dalam bentuk pasangan nilai bidang.

  • Halaman ini juga berisi empat opsi yaitu Save Document, Add Field, Upload Attachment, Delete Document.

  • Klik Delete Document pilihan.

  • Anda akan mendapatkan kotak dialog bertuliskan "Are you sure you want to delete this document?" Klik hapus, untuk menghapus dokumen.

Melampirkan File menggunakan cURL

Anda dapat melampirkan file ke CouchDB seperti halnya email. File tersebut berisi metadata seperti nama dan termasuk jenis MIME-nya, dan jumlah byte yang dimuat lampiran tersebut. Untuk melampirkan file ke dokumen Anda harus mengirim permintaan PUT ke server. Berikut ini adalah sintaks untuk melampirkan file ke dokumen -

$ curl -vX PUT http://127.0.0.1:5984/database_name/database_id
/filename?rev=document rev_id --data-binary @filename -H "Content-Type:
type of the content"

Permintaan tersebut memiliki berbagai opsi yang dijelaskan di bawah.

  • --data-binary@ - Opsi ini memberi tahu cURL untuk membaca konten file ke dalam badan permintaan HTTP.

  • -H - Opsi ini digunakan untuk menyebutkan jenis konten file yang akan kita unggah.

Contoh

Mari kita lampirkan file bernama boy.jpg, ke dokumen dengan id 001, dalam database bernama my_databasedengan mengirimkan permintaan PUT ke CouchDB. Sebelumnya, Anda harus mengambil data dokumen dengan id001 untuk mendapatkan arusnya rev id seperti yang ditunjukkan di bawah ini.

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id": "001",
   "_rev": "1-967a00dff5e02add41819138abb3284d"
}

Sekarang menggunakan _rev nilai, kirim permintaan PUT ke server CouchDB seperti yang ditunjukkan di bawah ini.

$ curl -vX PUT http://127.0.0.1:5984/my_database/001/boy.jpg?rev=1-
967a00dff5e02add41819138abb3284d --data-binary @boy.jpg -H "ContentType:
image/jpg"

Verifikasi

Untuk memverifikasi apakah lampiran telah diunggah, ambil isi dokumen seperti yang ditunjukkan di bawah ini−

$ curl -X GET http://127.0.0.1:5984/my_database/001
{
   "_id": "001",
   "_rev": "2-4705a219cdcca7c72aac4f623f5c46a8",
   "_attachments": {
      "boy.jpg": {
         "content_type": "image/jpg",
         "revpos": 2,
         "digest": "md5-9Swz8jvmga5mfBIsmCxCtQ==",
         "length": 91408,
         "stub": true
      }
   }
}

Melampirkan File menggunakan Futon

Unggah Lampiran

Menggunakan opsi ini, Anda bisa mengunggah lampiran baru seperti file, gambar, atau dokumen, ke database. Untuk melakukannya, klikUpload Attachmenttombol. Kotak dialog akan muncul di mana Anda dapat memilih file yang akan diunggah. Pilih file dan klik fileUpload tombol.

File yang diunggah akan ditampilkan di bawah bidang _attachments. Nanti Anda dapat melihat file tersebut dengan mengkliknya.