CouchDB - Szybki przewodnik

System zarządzania bazą danych zapewnia mechanizm przechowywania i wyszukiwania danych. Istnieją trzy główne typy systemów zarządzania bazami danych, a mianowicie RDBMS (Relational Database Management Systems), OLAP (Online Analytical Processing Systems) i NoSQL.

RDBMS

RDBMS to skrót od Relational Database Management System. RDBMS jest podstawą SQL i wszystkich nowoczesnych systemów baz danych, takich jak MS SQL Server, IBM DB2, Oracle, MySQL i Microsoft Access.

System zarządzania relacyjnymi bazami danych (RDBMS) to system zarządzania bazami danych (DBMS) oparty na modelu relacyjnym wprowadzonym przez EF Codda.

Dane w RDBMS są przechowywane w obiektach bazy danych o nazwie tables. Tabela jest zbiorem powiązanych wpisów danych i składa się z kolumn i wierszy. Przechowuje tylko dane strukturalne.

OLAP

Online Analytical Processing Server (OLAP) jest oparty na wielowymiarowym modelu danych. Umożliwia menedżerom i analitykom uzyskanie wglądu w informacje poprzez szybki, spójny i interaktywny dostęp do informacji.

Bazy danych NoSQL

Baza danych NoSQL (czasami nazywana nie tylko SQL) to baza danych, która zapewnia mechanizm przechowywania i pobierania danych innych niż relacje tabelaryczne używane w relacyjnych bazach danych. Te bazy danych są wolne od schematów, obsługują łatwą replikację, mają proste API, ostatecznie spójne i mogą obsługiwać ogromne ilości danych (duże zbiory danych).

Podstawowym celem bazy danych NoSQL jest:

  • Prostota projektowania,
  • Skalowanie poziome i
  • Lepsza kontrola dostępności.

Bazy danych NoSQL używają innych struktur danych niż relacyjne bazy danych. Przyspiesza niektóre operacje w NoSQL. Przydatność danej bazy danych NoSQL zależy od problemu, który ma rozwiązać. Te bazy danych przechowują zarówno dane strukturalne, jak i nieustrukturyzowane, takie jak pliki audio, pliki wideo, dokumenty itp. Te bazy danych NoSQL są podzielone na trzy typy i wyjaśniono je poniżej.

Key-value Store- Te bazy danych są przeznaczone do przechowywania danych w parach klucz-wartość i te bazy danych nie będą miały żadnego schematu. W tych bazach danych każda wartość danych składa się z klucza indeksowanego i wartości dla tego klucza.

Przykłady - BerkeleyDB, Cassandra, DynamoDB, Riak.

Column Store- W tych bazach danych dane są przechowywane w komórkach pogrupowanych w kolumny danych, a kolumny te są dalej pogrupowane w rodziny kolumn. Te rodziny kolumn mogą zawierać dowolną liczbę kolumn.

Przykłady - BigTable, HBase i HyperTable.

Document Store- Są to bazy danych opracowane w oparciu o podstawową koncepcję magazynów klucz-wartość, w których „dokumenty” zawierają bardziej złożone dane. Tutaj do każdego dokumentu przypisany jest unikalny klucz, który służy do pobierania dokumentu. Są one przeznaczone do przechowywania, pobierania i zarządzania informacjami zorientowanymi na dokumenty, zwanymi również danymi częściowo ustrukturyzowanymi.

Przykłady - CouchDB i MongoDB.

Co to jest CouchDB?

CouchDB to baza danych typu open source opracowana przez fundację oprogramowania Apache. Nacisk kładziony jest na łatwość obsługi, obejmującą Internet. Jest to baza danych magazynu dokumentów NoSQL.

Używa JSON do przechowywania danych (dokumentów), skryptu java jako języka zapytań do przekształcania dokumentów, protokołu http dla interfejsu API w celu uzyskania dostępu do dokumentów, odpytywania indeksów za pomocą przeglądarki internetowej. Jest to wielowzorcowa aplikacja wydana w 2005 roku i stała się projektem apache w 2008 roku.

Dlaczego CouchDB?

  • CouchDB ma oparty na HTTP REST API, który ułatwia komunikację z bazą danych. Prosta struktura zasobów i metod HTTP (GET, PUT, DELETE) jest łatwa do zrozumienia i użycia.

  • Ponieważ przechowujemy dane w elastycznej strukturze opartej na dokumentach, nie ma potrzeby martwić się o strukturę danych.

  • Użytkownicy mają do dyspozycji zaawansowane mapowanie danych, które umożliwia tworzenie zapytań, łączenie i filtrowanie informacji.

  • CouchDB zapewnia łatwą w użyciu replikację, za pomocą której można kopiować, udostępniać i synchronizować dane między bazami danych i maszynami.

Model danych

  • Baza danych to najbardziej zewnętrzna struktura / kontener danych w CouchDB.

  • Każda baza danych to zbiór niezależnych dokumentów.

  • Każdy dokument ma własne dane i samodzielny schemat.

  • Metadane dokumentu zawierają informacje o rewizji, co pozwala na scalenie różnic, które wystąpiły podczas odłączenia baz danych.

  • CouchDB implementuje kontrolę współbieżności wielu wersji, aby uniknąć konieczności blokowania pola bazy danych podczas zapisu.

Cechy CouchDB: Zmniejsz zawartość

Przechowywanie dokumentów

CouchDB to baza danych NoSQL do przechowywania dokumentów. Zapewnia możliwość przechowywania dokumentów o unikalnych nazwach, a także zapewnia interfejs API o nazwie RESTful HTTP API do odczytu i aktualizacji (dodawania, edycji, usuwania) dokumentów bazy danych.

W CouchDB dokumenty są podstawową jednostką danych i zawierają również metadane. Pola dokumentu mają unikalne nazwy i zawierają wartości różnych typów (tekst, liczba, wartości logiczne, listy itp.) I nie ma ustalonego limitu rozmiaru tekstu ani liczby elementów.

Aktualizacje dokumentów (dodawanie, edycja, usuwanie) podążają za Atomicity, tj. Zostaną zapisane w całości lub w ogóle nie zostaną zapisane. Baza danych nie będzie zawierała żadnych częściowo zapisanych lub edytowanych dokumentów.

Struktura dokumentu Json

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

Właściwości KWASU

CouchDB zawiera właściwości ACID jako jedną z jego funkcji.

Spójność - po zatwierdzeniu danych w CouchDB dane te nie zostaną zmodyfikowane ani nadpisane. W ten sposób CouchDB zapewnia, że ​​plik bazy danych będzie zawsze w spójnym stanie.

Model Multi-Version Concurrency Control (MVCC) jest używany przez odczyty CouchDB, dzięki czemu klient zobaczy spójną migawkę bazy danych od początku do końca operacji odczytu.

Za każdym razem, gdy dokument jest aktualizowany, CouchDB opróżnia dane na dysk, a zaktualizowany nagłówek bazy danych jest zapisywany w dwóch kolejnych i identycznych fragmentach, aby utworzyć pierwsze 4 kB pliku, a następnie synchronicznie opróżniany na dysk. Częściowe aktualizacje podczas flush zostaną odrzucone.

Jeśli awaria wystąpiła podczas zatwierdzania nagłówka, zachowana kopia poprzednich identycznych nagłówków pozostanie, zapewniając spójność wszystkich wcześniej zatwierdzonych danych. Z wyjątkiem obszaru nagłówka, kontrole spójności lub naprawy po awarii lub awarii zasilania nigdy nie są konieczne.

Zagęszczanie

Za każdym razem, gdy miejsce w pliku bazy danych zostanie zmarnowane powyżej pewnego stopnia, wszystkie aktywne dane zostaną skopiowane (sklonowane) do nowego pliku. Po całkowitym zakończeniu procesu kopiowania stary plik zostanie usunięty. Wszystko to odbywa się poprzez proces zagęszczania. Baza danych pozostaje online podczas kompaktowania, a wszystkie aktualizacje i odczyty mogą zostać pomyślnie zakończone.

Wyświetlenia

Dane w CouchDB są przechowywane w częściowo ustrukturyzowanych dokumentach, które są elastyczne z indywidualnymi niejawnymi strukturami, ale jest to prosty model dokumentu do przechowywania i udostępniania danych. Jeśli chcemy zobaczyć nasze dane na wiele różnych sposobów, potrzebujemy sposobu na filtrowanie, organizowanie i raportowanie danych, które nie zostały rozłożone na tabele.

Aby rozwiązać ten problem, CouchDB udostępnia model widoku. Widoki to metoda agregacji i raportowania dokumentów w bazie danych i są tworzone na żądanie w celu agregowania, łączenia i raportowania dokumentów bazy danych. Ponieważ widoki są budowane dynamicznie i nie wpływają na dokument źródłowy, możesz mieć dowolną liczbę różnych reprezentacji widoku tych samych danych.

Historia

  • CouchDB został napisany w języku programowania Erlang.
  • Został uruchomiony przez Damiena Katza w 2005 roku.
  • CouchDB stał się projektem Apache w 2008 roku.

Aktualna wersja CouchDB to 1.61.

W tym rozdziale dowiesz się, jak zainstalować CouchDB zarówno w systemie Windows, jak i Linux.

Instalowanie CouchDB w systemie Windows

Pobierz CouchDB

Oficjalna strona CouchDB to https://couchdb.apache.org. Jeśli klikniesz w podany link, możesz uzyskać stronę główną oficjalnej witryny CouchDB, jak pokazano poniżej.

Kliknięcie przycisku pobierania spowoduje wyświetlenie strony, na której znajdują się łącza do pobierania CouchDB w różnych formatach. Poniższa migawka ilustruje to samo.

Wybierz łącze pobierania dla systemów Windows i wybierz jeden z dostarczonych serwerów lustrzanych, aby rozpocząć pobieranie.

Instalowanie CouchDB

CouchDB zostanie pobrany do twojego systemu w postaci pliku instalacyjnego o nazwie setup-couchdb-1.6.1_R16B02.exe. Uruchom plik instalacyjny i kontynuuj instalację.

Po instalacji otwórz wbudowany interfejs sieciowy CouchDB, odwiedzając następujące strony link: http://127.0.0.1:5984/. Jeśli wszystko pójdzie dobrze, otrzymasz stronę internetową, która ma następujący wynik.

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

Możesz współdziałać z interfejsem internetowym CouchDB, używając następującego adresu URL -

http://127.0.0.1:5984/_utils/

Spowoduje to wyświetlenie strony indeksu Futon, który jest interfejsem sieciowym CouchDB.

Instalowanie CouchDB w systemach Linux

W przypadku wielu systemów o smaku Linuksa udostępniają wewnętrznie CouchDB. Aby zainstalować tę CouchDB, postępuj zgodnie z instrukcjami.

W Ubuntu i Debian możesz użyć -

sudo aptitude install couchdb

W Gentoo Linux dostępny jest ebuild CouchDB -

sudo emerge couchdb

Jeśli Twój system Linux nie ma CouchDB, wykonaj następną sekcję, aby zainstalować CouchDB i jego zależności.

Instalowanie zależności CouchDB

Poniżej znajduje się lista zależności, które mają zostać zainstalowane, aby uzyskać CouchDB w systemie

  • Erlang OTP
  • ICU
  • OpenSSL
  • Mozilla SpiderMonkey
  • GNU Make
  • Kolekcja kompilatorów GNU
  • libcurl
  • help2man
  • Python dla dokumentów
  • Python Sphinx

Aby zainstalować te zależności, wpisz następujące polecenia w terminalu. Tutaj używamy Centosa 6.5, a poniższe polecenia zainstalują wymagane oprogramowanie kompatybilne z Centosem 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 −Do wszystkich tych poleceń musisz użyć sudo. Poniższa procedura konwertuje zwykłego użytkownika na sudoera.

  • Zaloguj się jako root jako administrator

  • otwarty sudo plik za pomocą następującego polecenia -

visudo
  • Następnie edytuj, jak pokazano poniżej, aby nadać istniejącemu użytkownikowi uprawnienia sudoer -
Hadoop All=(All) All , and press esc : x to write the changes to the file.

Po pobraniu wszystkich zależności w systemie pobierz CouchDB zgodnie z podanymi instrukcjami.

Pobieranie CouchDB

Fundacja oprogramowania Apache nie zapewni pełnego pliku .tar dla CouchDB, więc musisz zainstalować go ze źródła.

Utwórz nowy katalog, aby zainstalować CouchDB, przejdź do tak utworzonego katalogu i pobierz źródło CouchDB, wykonując następujące polecenia -

$ 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

Spowoduje to pobranie pliku źródłowego CouchDB do twojego systemu. Teraz rozpakuj plikapache-couchdb-1.6.1.tar.gz jak pokazano niżej.

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

Konfigurowanie CouchDB

Aby skonfigurować CouchDB, wykonaj następujące czynności -

  • Przejdź do folderu domowego CouchDB.
  • Zaloguj się jako superużytkownik.
  • Skonfiguruj za pomocą znaku zachęty ./configure, jak pokazano poniżej -
$ cd apache-couchdb-1.6.1
$ su
Password:
# ./configure --with-erlang=/usr/lib64/erlang/usr/include/

Daje on następujący wynik podobny do tego pokazanego poniżej z końcową linią mówiącą - 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.

Instalowanie CouchDB

Teraz wpisz następujące polecenie, aby zainstalować CouchDB w swoim systemie.

# make && sudo make install

Instaluje CouchDB w twoim systemie z końcową linią mówiącą - You have installed Apache CouchDB, time to relax.

Uruchamiam CouchDB

Aby uruchomić CouchDB, przejdź do katalogu domowego CouchDB i użyj następującego polecenia -

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

Uruchamia CouchDB z następującym wyjściem: -

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

Weryfikacja

Ponieważ CouchDB jest interfejsem internetowym, spróbuj wpisać w przeglądarce następujący adres URL strony głównej.

http://127.0.0.1:5984/

Generuje następujący wynik -

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

Narzędzie cURL

Narzędzie cURL to sposób komunikacji z CouchDB.

Jest to narzędzie do przesyłania danych z lub do serwera za pomocą jednego z obsługiwanych protokołów (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP lub FILE). Polecenie zostało zaprojektowane do pracy bez interakcji użytkownika. cURL oferuje mnóstwo przydatnych sztuczek, takich jak obsługa proxy, uwierzytelnianie użytkownika, wysyłanie ftp, post HTTP, połączenia SSL (https :), pliki cookie, wznowienie przesyłania plików i wiele innych.

Narzędzie cURL jest dostępne w systemach operacyjnych, takich jak UNIX, Linux, Mac OS X i Windows. Jest to narzędzie wiersza poleceń, za pomocą którego użytkownik może uzyskać dostęp do protokołu HTTP bezpośrednio z wiersza poleceń. W tym rozdziale dowiesz się, jak używać narzędzia cURL.

Korzystanie z narzędzia cURL

Możesz uzyskać dostęp do dowolnej witryny internetowej za pomocą narzędzia cURL, wpisując po prostu cURL, a następnie adres strony internetowej, jak pokazano poniżej -

curl www.tutorialspoint.com/

Domyślnie narzędzie cURL zwraca kod źródłowy żądanej strony. Wyświetla ten kod w oknie terminala.

Opcje narzędzia cURL

Narzędzie cURL udostępnia różne opcje do pracy, które można zobaczyć w pomocy narzędzia cURL.

Poniższy kod przedstawia część pomocy dotyczącej 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

Podczas komunikacji z CouchDB szeroko stosowano pewne opcje narzędzia cURL. Poniżej znajduje się krótki opis niektórych ważnych opcji narzędzia cURL, w tym tych używanych przez CouchDB.

-X flaga

(HTTP) Określa niestandardową metodę żądania używaną podczas komunikacji z serwerem HTTP. Określone żądanie jest używane zamiast metody używanej w inny sposób (domyślnie GET). Przeczytaj specyfikację HTTP 1.1, aby uzyskać szczegółowe informacje i wyjaśnienia.

(FTP) Określa niestandardowe polecenie FTP, które ma być używane zamiast LISTY podczas tworzenia list plików za pomocą ftp.

-H

(HTTP) Dodatkowy nagłówek jest używany podczas pobierania strony internetowej. Zauważ, że jeśli dodasz niestandardowy nagłówek, który ma taką samą nazwę jak jeden z wewnętrznych nagłówków, których używałby cURL, Twój zewnętrznie ustawiony nagłówek zostanie użyty zamiast wewnętrznego. Pozwala to na wykonanie jeszcze trudniejszej pracy niż normalnie zrobiłby to cURL. Nie powinieneś zamieniać wewnętrznie ustawionych nagłówków bez doskonałej wiedzy o tym, co robisz. Zastąpienie wewnętrznego nagłówka nagłówkiem bez treści po prawej stronie dwukropka uniemożliwi wyświetlanie tego nagłówka.

cURL zapewnia, że ​​każdy dodawany / zastępowany nagłówek zostanie wysłany z odpowiednim znacznikiem końca linii. Ani nie należy dodawać tego jako części zawartości nagłówka, ani dodawać nowych linii ani powrotów karetki, aby nieuporządkować.

Zobacz także opcje -A / - user-agent i -e / - referer.

Ta opcja może być używana wiele razy, aby dodać / zamienić / usunąć wiele nagłówków.

-d flaga

Używając tej flagi cURL, możesz wysyłać dane wraz z żądaniem HTTP POST do serwera, tak jakby zostały wypełnione przez użytkownika w formularzu i przesłane.

Example

Załóżmy, że istnieje witryna internetowa i chcesz się do niej zalogować lub wysłać do niej jakieś dane za pomocą flagi –d narzędzia cURL, jak pokazano poniżej.

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

Wysyła fragment posta, który wygląda jak "userid=001&password=tutorialspoint". Podobnie możesz również wysyłać dokumenty (JSON) za pomocą flagi -d.

-o flaga

Używając tej flagi, cURL zapisuje dane wyjściowe żądania do pliku.

Example

Poniższy przykład pokazuje użycie -o flaga narzędzia 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

Spowoduje to pobranie kodu źródłowego strony głównej tutorialspoint.com, utworzenie pliku o nazwie example.com i zapisanie wyniku w pliku o nazwie example.html.

Poniżej znajduje się migawka example.html.

-O

Ta flaga jest podobna do –o, jedyną różnicą jest to, że z tą flagą został utworzony nowy plik o tej samej nazwie co żądany adres URL, a kod źródłowy żądanego adresu URL zostanie do niego skopiowany.

Example

Poniższy przykład pokazuje użycie -O flaga narzędzia 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

Tworzy nowy plik o nazwie index.htm i zapisuje w nim kod źródłowy strony indeksowej tutorialspoint.com.

Witam CouchDB

Możesz uzyskać dostęp do strony głównej CouchDB, wysyłając żądanie GET do zainstalowanej instancji CouchDB. Przede wszystkim upewnij się, że zainstalowałeś CouchDB w swoim środowisku Linux i działa poprawnie, a następnie użyj następującej składni, aby wysłać żądanie get do instancji CouchDB.

curl http://127.0.0.1:5984/

W ten sposób otrzymasz dokument JSON, jak pokazano poniżej, gdzie CouchDB określa szczegóły, takie jak numer wersji, nazwa dostawcy i wersja oprogramowania.

$ 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"
   }
}

Lista wszystkich baz danych

Możesz uzyskać listę wszystkich utworzonych baz danych, wysyłając żądanie get wraz z ciągiem "_all_dbs string ". Poniżej znajduje się składnia umożliwiająca pobranie listy wszystkich baz danych w CouchDB.

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

Wyświetla listę wszystkich baz danych w CouchDB, jak pokazano poniżej.

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

Tworzenie bazy danych

Możesz utworzyć bazę danych w CouchDB używając cURL z nagłówkiem PUT, używając następującej składni -

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

Przykład

Jako przykład, używając powyższej składni, utwórz bazę danych o nazwie my_database jak pokazano niżej.

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

Weryfikacja

Sprawdź, czy baza danych została utworzona, wymieniając wszystkie bazy danych, jak pokazano poniżej. Tutaj możesz zobaczyć nazwę nowo utworzonej bazy danych,"my_database" na liście

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

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

Pobieranie informacji o bazie danych

Możesz uzyskać informacje o bazie danych za pomocą żądania get wraz z nazwą bazy danych. Poniżej znajduje się składnia uzyskiwania informacji o bazie danych.

Przykład

Jako przykład weźmy informacje o nazwie bazy danych my_databasejak pokazano niżej. Tutaj możesz otrzymać w odpowiedzi informacje o swojej bazie danych.

$ 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 to wbudowany internetowy interfejs administracyjny CouchDB. Zapewnia prosty interfejs graficzny, za pomocą którego można współpracować z CouchDB. Jest to naiwny interfejs i zapewnia pełny dostęp do wszystkich funkcji CouchDB. Poniżej znajduje się lista tych funkcji -

Databases −
  • Tworzy bazy danych.
  • Niszczy bazy danych.
Documents −
  • Tworzy dokumenty.
  • Aktualizuje dokumenty.
  • Edytuje dokumenty.
  • Usuwa dokumenty.

Uruchamiam Futon

Upewnij się, że CouchDB jest uruchomiony, a następnie otwórz następujący adres URL w przeglądarce -

http://127.0.0.1:5984/_utils/

Jeśli otworzysz ten adres URL, wyświetli się strona główna Futon, jak pokazano poniżej -

  • Po lewej stronie tej strony możesz zobaczyć listę wszystkich aktualnych baz danych CouchDB. Na tej ilustracji mamy bazę danych o nazwiemy_databasewraz z bazami danych zdefiniowanymi przez system _replicator i _user.

  • Po prawej stronie można zobaczyć:

    • Tools - W tej sekcji możesz znaleźć Configuration skonfigurować CouchDB, Replicator do wykonywania replikacji, i Status aby zweryfikować status CouchDB i ostatnie modyfikacje dokonane w CouchDB.

    • Documentation - Ta sekcja zawiera pełną dokumentację najnowszej wersji CouchDB.

    • Diagnostics - W ramach tego możesz zweryfikować instalację CouchDB.

    • Recent Databases - Pod tym można znaleźć nazwy ostatnio dodanych baz danych.

Korzystając z nagłówków żądań HTTP, możesz komunikować się z CouchDB. Dzięki tym żądaniom możemy pobierać dane z bazy danych, przechowywać dane w bazie danych w postaci dokumentów, a także przeglądać i formatować dokumenty przechowywane w bazie danych.

Formaty żądań HTTP

Podczas komunikacji z bazą danych będziemy używać różnych formatów żądań, takich jak pobieranie, nagłówek, publikowanie, wysyłanie, usuwanie i kopiowanie. Dla wszystkich operacji w CouchDB dane wejściowe i wyjściowe struktury danych będą miały postać obiektu JavaScript Object Notation (JSON).

Poniżej przedstawiono różne formaty żądań protokołu HTTP używane do komunikacji z CouchDB.

  • GET- Ten format jest używany do uzyskania określonej pozycji. Aby otrzymać różne przedmioty, musisz wysłać określone wzorce adresów URL. W CouchDB za pomocą tego żądania GET możemy uzyskać statyczne pozycje, dokumenty bazy danych i konfigurację oraz informacje statystyczne w postaci dokumentów JSON (w większości przypadków).

  • HEAD - Metoda HEAD służy do pobierania nagłówka HTTP żądania GET bez treści odpowiedzi.

  • POST- Żądanie postu służy do przesyłania danych. W CouchDB za pomocą żądania POST można ustawiać wartości, przesyłać dokumenty, ustawiać wartości dokumentów, a także uruchamiać określone polecenia administracyjne.

  • PUT - Za pomocą wniosku PUT można tworzyć nowe obiekty, bazy danych, dokumenty, widoki i dokumenty projektowe.

  • DELETE - Korzystając z żądania USUŃ, możesz usuwać dokumenty, widoki i dokumenty projektowe.

  • COPY - Za pomocą metody KOPIUJ można kopiować dokumenty i obiekty.

Nagłówki żądań HTTP

Aby uzyskać właściwy format i kodowanie, należy podać nagłówki HTTP. Wysyłając żądanie do serwera CouchDB, możesz wysłać nagłówki żądania HTTP wraz z żądaniem. Poniżej przedstawiono różne nagłówki żądań HTTP.

  • Content-type- Ten nagłówek służy do określenia typu treści danych, które dostarczamy do serwera wraz z żądaniem. Przeważnie typ treści, które wysyłamy wraz z żądaniem, będzie typu MIME lub JSON (application / json). Zdecydowanie zaleca się używanie typu zawartości na żądanie.

  • Accept- Ten nagłówek służy do określenia serwera, listy typów danych, które klient może zrozumieć, dzięki czemu serwer wyśle ​​odpowiedź przy użyciu tych typów danych. Ogólnie w tym miejscu możesz wysłać listę typów danych MIME, które akceptuje klient, oddzielonych dwukropkami.

    Chociaż używanie Accept w zapytaniach CouchDB nie jest wymagane, jest wysoce zalecane, aby upewnić się, że zwrócone dane mogą być przetwarzane przez klienta.

Nagłówki odpowiedzi

To są nagłówki odpowiedzi wysłanej przez serwer. Te nagłówki zawierają informacje o treści wysyłanej przez serwer w odpowiedzi.

  • Content-type- Ten nagłówek określa typ MIME danych zwracanych przez serwer. W przypadku większości żądań zwracany typ MIME to tekst / zwykły.

  • Cache-control- Ten nagłówek sugeruje klientowi traktowanie informacji przesyłanych przez serwer. CouchDB w większości zwraca wartość must-revalidate, która wskazuje, że informacja powinna zostać ponownie zweryfikowana, jeśli to możliwe.

  • Content-length - Ten nagłówek zwraca długość treści wysłanej przez serwer w bajtach.

  • Etag - Ten nagłówek jest używany do pokazania wersji dokumentu lub widoku.

Kody stanu

Poniżej znajduje się tabelaryczna postać kodu statusu wysyłanego przez nagłówek http i jego opis.

Sr.No. Kod stanu i opis
1

200 − OK

Ten status zostanie nadany, gdy żądanie zakończy się pomyślnie.

2

201 − Created

Status ten zostanie nadany po utworzeniu dokumentu.

3

202 − Accepted

Status ten zostanie nadany po przyjęciu wniosku.

4

404 − Not Found

Ten status zostanie wystawiony, gdy serwer nie będzie mógł znaleźć żądanej treści.

5

405 − Resource Not Allowed

Ten status jest wystawiany, gdy używany typ żądania HTTP jest nieprawidłowy.

6

409 − Conflict

Ten status jest wystawiany za każdym razem, gdy występuje konflikt aktualizacji.

7

415 − Bad Content Type

Ten stan wskazuje, że żądany typ zawartości nie jest obsługiwany przez serwer.

8

500 − Internal Server Error

Ten status jest nadawany, gdy dane przesłane w żądaniu są nieprawidłowe.

Ścieżki URL HTTP

Istnieją określone ścieżki URL, za pomocą których można bezpośrednio wchodzić w interakcję z bazą danych. Poniżej przedstawiono tabelaryczny format takich ścieżek adresów URL.

Sr.No. URL i operacja
1

PUT /db

Ten adres URL służy do tworzenia nowej bazy danych.

2

GET /db

Ten adres URL służy do pobierania informacji o istniejącej bazie danych.

3

PUT /db/document

Ten adres URL służy do tworzenia dokumentu / aktualizowania istniejącego dokumentu.

4

GET /db/document

Ten adres URL służy do pobierania dokumentu.

5

DELETE /db/document

Ten adres URL służy do usuwania określonego dokumentu z określonej bazy danych.

6

GET /db/_design/design-doc

Ten adres URL służy do uzyskania definicji dokumentu projektowego.

7

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

Ten adres URL służy do uzyskiwania dostępu do widoku, nazwa widoku z dokumentu projektowego z określonej bazy danych.

Baza danych to najbardziej zewnętrzna struktura danych w CouchDB, w której przechowywane są Twoje dokumenty. Możesz tworzyć te bazy danych za pomocą narzędzia cURL dostarczanego przez CouchDB, a także Futon, interfejsu internetowego CouchDB.

Tworzenie bazy danych za pomocą narzędzia cURL

Bazę danych można utworzyć w CouchDB, wysyłając żądanie HTTP do serwera metodą PUT za pomocą narzędzia cURL. Poniżej znajduje się składnia tworzenia bazy danych -

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

Za pomocą −Xmożemy określić niestandardową metodę żądania HTTP, która ma być używana. W tym przypadku używamy metody PUT. Kiedy używamy operacji / metody PUT, zawartość adresu URL określa nazwę obiektu, który tworzymy za pomocą żądania HTTP. Tutaj musimy wysłać nazwę bazy danych za pomocą żądania umieszczenia w adresie URL, aby utworzyć bazę danych.

Przykład

Używanie powyższej składni, jeśli chcesz stworzyć bazę danych o nazwie my_database, możesz go utworzyć w następujący sposób

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

W odpowiedzi serwer zwróci Ci dokument JSON z zawartością “ok” - true co wskazuje, że operacja się powiodła

Weryfikacja

Sprawdź, czy baza danych została utworzona, wymieniając wszystkie bazy danych, jak pokazano poniżej. Tutaj możesz obserwować nazwę nowo utworzonej bazy danych," my_database " na liście.

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

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

Tworzenie bazy danych za pomocą Futon

Aby utworzyć bazę danych, otwórz plik http://127.0.0.1:5984/_utils/. Otrzymasz stronę przeglądu / indeksu CouchDB, jak pokazano poniżej.

Na tej stronie możesz zobaczyć listę baz danych w CouchDB, przycisk opcji Utwórz bazę danych po lewej stronie.

Teraz kliknij łącze tworzenia bazy danych. Możesz zobaczyć wyskakujące okienkoCreate New Databasespytanie o nazwę bazy danych dla nowej bazy danych. Wybierz dowolną nazwę zgodnie z wymienionymi kryteriami. Tutaj tworzymy kolejną bazę danych o nazwie tutorials_point. Kliknij przycisk tworzenia, jak pokazano na poniższym zrzucie ekranu.

Usuwanie bazy danych za pomocą narzędzia cURL

Możesz usunąć bazę danych w CouchDB, wysyłając żądanie do serwera metodą DELETE za pomocą narzędzia cURL. Poniżej znajduje się składnia tworzenia bazy danych -

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

Za pomocą −Xmożemy określić niestandardową metodę żądania HTTP, z której korzystamy podczas komunikacji z serwerem HTTP. W tym przypadku używamy metody DELETE. Wyślij adres URL na serwer, określając bazę danych do usunięcia z niego.

Przykład

Załóżmy, że w CouchDB istnieje baza danych o nazwie my_database2. Używając powyższej składni, jeśli chcesz ją usunąć, możesz to zrobić w następujący sposób -

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

W odpowiedzi serwer zwróci Ci dokument JSON z zawartością “ok” - true co wskazuje, że operacja się powiodła

Weryfikacja

Sprawdź, czy baza danych została usunięta, wymieniając wszystkie bazy danych, jak pokazano poniżej. Tutaj możesz obserwować nazwę usuniętej bazy danych,"my_database" nie ma na liście.

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

[ "_replicator " , " _users " ]

Usuwanie bazy danych za pomocą Futon

Aby usunąć bazę danych, otwórz plik http://127.0.0.1:5984/_utils/ url, gdzie otrzymasz przegląd / indeks strony CouchDB, jak pokazano poniżej.

Tutaj możesz zobaczyć trzy bazy danych utworzone przez użytkowników. Usuńmy bazę danych o nazwie tutorials_point2. Aby usunąć bazę danych, wybierz jedną z listy baz danych i kliknij ją, co spowoduje wyświetlenie strony przeglądu wybranej bazy danych, na której można zobaczyć różne operacje na bazach danych. Poniższy zrzut ekranu pokazuje to samo -

Wśród nich możesz znaleźć Delete Databaseopcja. Klikając na nią, pojawi się wyskakujące okienko z pytaniem, czy na pewno! Kliknij usuń, aby usunąć wybraną bazę danych.

Dokumenty to centralna struktura danych CouchDB. Zawartość bazy danych będzie przechowywana w formie Dokumentów zamiast tabel. Możesz tworzyć te dokumenty za pomocą narzędzia cURL dostarczanego przez CouchDB, a także Futon. W tym rozdziale omówiono sposoby tworzenia dokumentów w bazie danych.

Każdy dokument w CouchDB ma unikalny identyfikator. Możesz wybrać własny identyfikator, który powinien mieć postać ciągu. Ogólnie używany jest UUID (Universally Unique IDentifier), czyli liczby losowe, które mają najmniejszą szansę na utworzenie duplikatu. Są one preferowane, aby uniknąć kolizji.

Tworzenie dokumentu za pomocą narzędzia cURL

Możesz utworzyć dokument w CouchDB, wysyłając żądanie HTTP do serwera metodą PUT za pomocą narzędzia cURL. Poniżej znajduje się składnia tworzenia dokumentu.

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

Za pomocą −Xmożemy określić niestandardową metodę żądania HTTP, z której korzystamy podczas komunikacji z serwerem HTTP. W tym przypadku używamy metody PUT. Kiedy używamy metody PUT, zawartość adresu URL określa nazwę obiektu, który tworzymy za pomocą żądania HTTP. Tutaj musimy wysłać następujące -

  • Nazwa bazy danych, w której tworzymy dokument.

  • Identyfikator dokumentu.

  • Dane dokumentu. −dopcja służy do przesłania danych / dokumentu poprzez żądanie HTTP. Podczas pisania dokumentu po prostu wprowadź pary Pole-Wartość oddzielone dwukropkiem, w nawiasach kwiatowych, jak pokazano poniżej -

{
   Name : Raju
   age : 23
   Designation : Designer
}

Przykład

Używając powyższej składni, jeśli chcesz utworzyć dokument o identyfikatorze 001 w bazie danych o nazwie my_database, możesz go utworzyć, jak pokazano poniżej.

$ 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"}

Odpowiedź CouchDB na to żądanie zawiera trzy pola -

  • "ok", co wskazuje, że operacja się powiodła

  • "id", który przechowuje identyfikator dokumentu i

  • "rev",oznacza to identyfikator wersji. Za każdym razem, gdy poprawiasz (aktualizujesz lub modyfikujesz) dokument a_revwartość zostanie wygenerowana przez CouchDB. Jeśli chcesz zaktualizować lub usunąć dokument, CouchDB oczekuje, że dołączysz rozszerzenie_revpole wersji, którą chcesz zmienić. Gdy CouchDB zaakceptuje zmianę, wygeneruje nowy numer wersji. Ten mechanizm zapewnia kontrolę współbieżności.

Weryfikacja

Jeśli chcesz wyświetlić utworzony dokument, możesz go pobrać za pomocą dokumentu, jak pokazano poniżej.

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

Tworzenie dokumentu za pomocą Futon

Aby utworzyć dokument, otwórz plik http://127.0.0.1:5984/_utils/ url, aby uzyskać przegląd / indeks strony CouchDB, jak pokazano poniżej.

Wybierz bazę danych, w której chcesz utworzyć dokument. Otwórz stronę Przegląd bazy danych i wybierzNew Document opcja, jak pokazano poniżej.

Po wybraniu pliku New Documentopcja, CouchDB tworzy nowy dokument bazy danych, przypisując mu nowy identyfikator. Możesz edytować wartość id i przypisać własną wartość w postaci ciągu. Na poniższej ilustracji utworzyliśmy nowy dokument o identyfikatorze 001.

Na tej stronie możesz zaobserwować trzy opcje - zapisz dokument, dodaj pole i prześlij załącznik.

Dodaj pole do dokumentu

Aby dodać pole do dokumentu, kliknij Add Fieldopcja. Po utworzeniu bazy danych możesz dodać do niej pole za pomocą tej opcji. Kliknięcie go spowoduje wyświetlenie pary pól tekstowych, a mianowicie:Field, value.Możesz edytować te wartości, klikając je. Edytuj te wartości i wpisz żądaną parę pole-wartość. Kliknij zielony przycisk, aby zapisać te wartości.

Na poniższej ilustracji utworzyliśmy trzy pola Imię i nazwisko, wiek oraz Oznaczenie pracownika.

Zapisz dokument

Możesz zapisać zmiany wprowadzone w dokumencie, klikając tę ​​opcję. Po zapisaniu nowy identyfikator_rev zostanie wygenerowany, jak pokazano poniżej.

Aktualizowanie dokumentów za pomocą cURL

Możesz zaktualizować dokument w CouchDB, wysyłając żądanie HTTP do serwera metodą PUT za pomocą narzędzia cURL. Poniżej znajduje się składnia aktualizacji dokumentu.

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

Przykład

Załóżmy, że w bazie danych o nazwie my_database znajduje się dokument o identyfikatorze 001. Możesz to usunąć, jak pokazano poniżej.

Przede wszystkim uzyskaj identyfikator wersji dokumentu, który ma zostać zaktualizowany. Możesz znaleźć_rev dokumentu w samym dokumencie, dlatego pobierz dokument, jak pokazano poniżej.

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

Użyj identyfikatora wersji _rev z dokumentu, aby zaktualizować dokument. Tutaj aktualizujemy wiek od 23 do 24 lat.

$ 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 " }

Weryfikacja

Aby zweryfikować dokument, pobierz dokument ponownie za pomocą żądania GET, jak pokazano poniżej.

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

Poniżej przedstawiono kilka ważnych punktów, na które należy zwrócić uwagę podczas aktualizacji dokumentu.

  • Adres URL, który wysyłamy w żądaniu, zawierający nazwę bazy danych i identyfikator dokumentu.

  • Aktualizacja istniejącego dokumentu jest taka sama, jak aktualizacja całego dokumentu. Nie możesz dodać pola do istniejącego dokumentu. Możesz zapisać do bazy danych tylko całkowicie nową wersję dokumentu z tym samym identyfikatorem dokumentu.

  • Musimy podać numer wersji jako część żądania JSON.

  • W zamian JSON zawiera komunikat o powodzeniu, identyfikator aktualizowanego dokumentu oraz informacje o nowej wersji. Jeśli chcesz zaktualizować nową wersję dokumentu, musisz podać ten najnowszy numer wersji.

Aktualizacja dokumentów za pomocą Futon

Aby usunąć dokument, otwórz plik http://127.0.0.1:5984/_utils/ url, aby uzyskać przegląd / indeks strony CouchDB, jak pokazano poniżej.

Wybierz bazę danych, w której znajduje się dokument do aktualizacji i kliknij ją. Tutaj aktualizujemy dokument w bazie danych o nazwietutorials_point. Otrzymasz listę dokumentów w bazie danych, jak pokazano poniżej.

Wybierz dokument, który chcesz zaktualizować i kliknij go. Otrzymasz zawartość dokumentów, jak pokazano poniżej.

Tutaj, aby zaktualizować lokalizację z Delhi do Hyderabad, kliknij pole tekstowe, edytuj pole i kliknij zielony przycisk, aby zapisać zmiany, jak pokazano poniżej.

Usuwanie dokumentu za pomocą narzędzia cURL

Możesz usunąć dokument w CouchDB, wysyłając żądanie HTTP do serwera za pomocą metody DELETE za pomocą narzędzia cURL. Poniżej znajduje się składnia usuwania dokumentu.

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

Za pomocą −X,możemy określić niestandardową metodę żądania HTTP, z której korzystamy podczas komunikacji z serwerem HTTP. W tym przypadku używamy metody Delete. Usunięcie bazy danych /database_name/database_id/nie wystarczy. Musisz przekazać identyfikator ostatniej wersji przez adres URL. Wspomnieć o atrybutach dowolnej struktury danych"?" jest używany.

Przykład

Załóżmy, że w bazie danych znajduje się dokument o nazwie my_databasez identyfikatorem dokumentu 001. Aby usunąć ten dokument, musisz uzyskać identyfikator rewizji dokumentu. Pobierz dane dokumentu, jak pokazano poniżej.

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

Teraz określ identyfikator wersji dokumentu do usunięcia, identyfikator dokumentu i nazwę bazy danych, do której należy dokument, jak pokazano poniżej -

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

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

Weryfikacja

Aby sprawdzić, czy dokument został usunięty, spróbuj pobrać dokument przy użyciu rozszerzenia GETmetoda. Ponieważ pobierasz usunięty dokument, wyświetli się komunikat o błędzie, jak pokazano poniżej -

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

Usuwanie dokumentu za pomocą Futon

Przede wszystkim zweryfikuj dokumenty w bazie danych. Poniżej znajduje się migawka bazy danych o nazwietutorials_point.

Tutaj możesz zauważyć, baza danych składa się z trzech dokumentów. Aby usunąć którykolwiek z dokumentów, powiedz003, wykonaj następujące czynności -

  • Po kliknięciu na dokument pojawi się strona przedstawiająca zawartość wybranego dokumentu w postaci par pole-wartość.

  • Ta strona zawiera również cztery opcje, a mianowicie Save Document, Add Field, Upload Attachment, Delete Document.

  • Kliknij Delete Document opcja.

  • Pojawi się okno dialogowe z informacją "Are you sure you want to delete this document?" Kliknij usuń, aby usunąć dokument.

Dołączanie plików przy użyciu cURL

Możesz załączać pliki do CouchDB tak jak e-maile. Plik zawiera metadane, takie jak nazwa, i typ MIME oraz liczbę bajtów, które zawiera załącznik. Aby załączyć pliki do dokumentu, musisz wysłać żądanie PUT do serwera. Poniżej znajduje się składnia dołączania plików do dokumentu -

$ 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"

Żądanie ma różne opcje, które wyjaśniono poniżej.

  • --data-binary@ - Ta opcja mówi cURL, aby wczytywał zawartość pliku do treści żądania HTTP.

  • -H - Ta opcja służy do wskazania typu zawartości pliku, który zamierzamy przesłać.

Przykład

Załączmy plik o nazwie boy.jpg, do dokumentu o identyfikatorze 001, w bazie danych o nazwie my_databasewysyłając żądanie PUT do CouchDB. Wcześniej musisz pobrać dane dokumentu o identyfikatorze001 aby uzyskać prąd rev id, jak pokazano poniżej.

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

Teraz używając _rev wartość, wyślij żądanie PUT do serwera CouchDB, jak pokazano poniżej.

$ 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"

Weryfikacja

Aby sprawdzić, czy załącznik został przesłany, pobierz zawartość dokumentu, jak pokazano poniżej

$ 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
      }
   }
}

Dołączanie plików za pomocą Futon

Prześlij załącznik

Korzystając z tej opcji, możesz przesłać nowy załącznik, taki jak plik, obraz lub dokument, do bazy danych. Aby to zrobić, kliknijUpload Attachmentprzycisk. Pojawi się okno dialogowe, w którym możesz wybrać plik do przesłania. Wybierz plik i kliknijUpload przycisk.

Przesłany plik zostanie wyświetlony w polu _attachments. Później możesz zobaczyć plik, klikając go.