Учебники

CouchDB — Краткое руководство

CouchDB — Введение

Система управления базами данных обеспечивает механизм хранения и поиска данных. Существует три основных типа систем управления базами данных, а именно RDBMS (системы управления реляционными базами данных), OLAP (онлайн-системы аналитической обработки) и NoSQL.

RDBMS

RDBMS расшифровывается как система управления реляционными базами данных. СУБД является основой для SQL и для всех современных систем баз данных, таких как MS SQL Server, IBM DB2, Oracle, MySQL и Microsoft Access.

Система управления реляционными базами данных (RDBMS) — это система управления базами данных (СУБД), основанная на реляционной модели, представленной EF Codd.

Данные в РСУБД хранятся в объектах базы данных, называемых таблицами . Таблица представляет собой набор связанных записей данных и состоит из столбцов и строк. Он хранит только структурированные данные.

OLAP

Онлайновый сервер аналитической обработки (OLAP) основан на многомерной модели данных. Это позволяет менеджерам и аналитикам получать информацию, используя быстрый, согласованный и интерактивный доступ к информации.

Базы данных NoSQL

База данных NoSQL (иногда называемая не только SQL) — это база данных, которая предоставляет механизм для хранения и извлечения данных, отличных от табличных отношений, используемых в реляционных базах данных. Эти базы данных не содержат схем, поддерживают простую репликацию, имеют простой API, в конечном итоге непротиворечивы и могут обрабатывать огромные объемы данных (большие данные).

Основная цель базы данных NoSQL состоит в следующем:

  • Простота дизайна,
  • Горизонтальное масштабирование и
  • Более тонкий контроль над доступностью.

В базах данных NoSQL используются разные структуры данных по сравнению с реляционными базами данных. Это делает некоторые операции быстрее в NoSQL. Пригодность данной базы данных NoSQL зависит от проблемы, которую она должна решить. Эти базы данных хранят как структурированные данные, так и неструктурированные данные, такие как аудиофайлы, видеофайлы, документы и т. Д. Эти базы данных NoSQL подразделяются на три типа, и они поясняются ниже.

Хранилище ключей-значений — эти базы данных предназначены для хранения данных в парах ключ-значение, и в этих базах данных не будет никакой схемы. В этих базах данных каждое значение данных состоит из индексированного ключа и значения для этого ключа.

Примеры — BerkeleyDB, Cassandra, DynamoDB, Riak.

Хранилище столбцов — в этих базах данных данные хранятся в ячейках, сгруппированных в столбцы данных, и эти столбцы далее группируются в семейства столбцов. Эти семейства столбцов могут содержать любое количество столбцов.

Примеры — BigTable, HBase и HyperTable.

Хранилище документов — это базы данных, разработанные на основе основной идеи хранилищ ключей и значений, в которых «документы» содержат более сложные данные. Здесь каждому документу назначается уникальный ключ, который используется для извлечения документа. Они предназначены для хранения, извлечения и управления ориентированной на документы информацией, также известной как полуструктурированные данные.

Примеры — CouchDB и MongoDB.

Что такое CouchDB?

CouchDB — это база данных с открытым исходным кодом, разработанная программным фондом Apache. Основное внимание уделяется простоте использования, охватывая Интернет. Это база данных хранилища документов NoSQL.

Он использует JSON для хранения данных (документов), java-скрипт в качестве языка запросов для преобразования документов, http-протокол для api для доступа к документам, запрашивает индексы с помощью веб-браузера. Это мультимастерное приложение, выпущенное в 2005 году, и оно стало проектом apache в 2008 году.

Почему CouchDB?

  • CouchDB имеет API REST на основе HTTP, который помогает легко взаимодействовать с базой данных. А простую структуру ресурсов и методов HTTP (GET, PUT, DELETE) легко понять и использовать.

  • Поскольку мы храним данные в гибкой, основанной на документе структуре, нет необходимости беспокоиться о структуре данных.

  • Пользователям предоставляется мощное сопоставление данных, которое позволяет запрашивать, комбинировать и фильтровать информацию.

  • CouchDB обеспечивает простую в использовании репликацию, с помощью которой вы можете копировать, обмениваться и синхронизировать данные между базами данных и компьютерами.

CouchDB имеет API REST на основе HTTP, который помогает легко взаимодействовать с базой данных. А простую структуру ресурсов и методов HTTP (GET, PUT, DELETE) легко понять и использовать.

Поскольку мы храним данные в гибкой, основанной на документе структуре, нет необходимости беспокоиться о структуре данных.

Пользователям предоставляется мощное сопоставление данных, которое позволяет запрашивать, комбинировать и фильтровать информацию.

CouchDB обеспечивает простую в использовании репликацию, с помощью которой вы можете копировать, обмениваться и синхронизировать данные между базами данных и компьютерами.

Модель данных

  • База данных является самой внешней структурой данных / контейнером в CouchDB.

  • Каждая база данных представляет собой набор независимых документов.

  • Каждый документ поддерживает свои собственные данные и автономную схему.

  • Метаданные документа содержат информацию о редакции, что позволяет объединить различия, возникшие при отключении баз данных.

  • CouchDB реализует управление несколькими версиями параллелизма, чтобы избежать необходимости блокировать поле базы данных во время записи.

База данных является самой внешней структурой данных / контейнером в CouchDB.

Каждая база данных представляет собой набор независимых документов.

Каждый документ поддерживает свои собственные данные и автономную схему.

Метаданные документа содержат информацию о редакции, что позволяет объединить различия, возникшие при отключении баз данных.

CouchDB реализует управление несколькими версиями параллелизма, чтобы избежать необходимости блокировать поле базы данных во время записи.

Особенности CouchDB: уменьшить содержание

Хранение документов

CouchDB — это база данных NoSQL для хранения документов. Он предоставляет возможность хранения документов с уникальными именами, а также предоставляет API RESTful HTTP API для чтения и обновления (добавления, редактирования, удаления) документов базы данных.

В CouchDB документы являются основной единицей данных, и они также включают метаданные. Поля документа имеют уникальные имена и содержат значения различных типов (текст, число, логическое значение, списки и т. Д.), А также нет установленного ограничения на размер текста или количество элементов.

Обновления документа (добавление, редактирование, удаление) следуют за атомарностью, то есть они будут сохранены полностью или не сохранены вообще. В базе данных не будет частично сохраненных или отредактированных документов.

Структура документа Json

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

ACID Свойства

CouchDB содержит свойства ACID как одну из своих функций.

Согласованность. Когда данные в CouchDB были зафиксированы, эти данные не будут изменены или перезаписаны. Таким образом, CouchDB гарантирует, что файл базы данных всегда будет в согласованном состоянии.

Чтения CouchDB используют модель управления версиями с несколькими версиями (MVCC), из-за которой клиент будет видеть непротиворечивый снимок базы данных от начала до конца операции чтения.

Всякий раз, когда документ обновляется, CouchDB сбрасывает данные на диск, и обновленный заголовок базы данных записывается в виде двух последовательных и идентичных кусков, образуя первые 4 КБ файла, а затем синхронно сбрасывается на диск. Частичные обновления во время сброса будут сброшены.

Если сбой произошел при фиксации заголовка, сохранится копия предыдущих идентичных заголовков, обеспечивающая согласованность всех ранее зафиксированных данных. За исключением области заголовка, проверки целостности или исправления после сбоя или сбоя питания никогда не требуются.

уплотнение

Всякий раз, когда пространство в файле базы данных теряется выше определенной степени, все активные данные будут копироваться (клонироваться) в новый файл. Когда процесс копирования полностью завершен, старый файл будет удален. Все это делается процессом уплотнения. База данных остается в оперативном режиме во время уплотнения, и все обновления и чтения могут успешно завершаться.

Просмотры

Данные в CouchDB хранятся в полуструктурированных документах, которые гибки с отдельными неявными структурами, но это простая модель документа для хранения и совместного использования данных. Если мы хотим видеть наши данные разными способами, нам нужен способ фильтрации, организации и составления отчетов о данных, которые не были разложены на таблицы.

Чтобы решить эту проблему, CouchDB предоставляет модель представления. Представления — это метод агрегации и составления отчетов по документам в базе данных, которые создаются по требованию для агрегирования, объединения и составления отчетов по документам базы данных. Поскольку представления создаются динамически и не влияют на базовый документ, у вас может быть столько разных представлений представления, сколько вам нужно.

история

  • CouchDB был написан на языке программирования Erlang.
  • Он был запущен Дэмиеном Кацем в 2005 году.
  • CouchDB стал проектом Apache в 2008 году.

Текущая версия CouchDB — 1.61.

CouchDB — Установка

В этой главе рассказывается, как установить CouchDB в Windows, а также в системах Linux.

Установка CouchDB в Windows

Скачать CouchDB

Официальный сайт CouchDB: https://couchdb.apache.org . Если вы нажмете указанную ссылку, вы можете получить домашнюю страницу официального сайта CouchDB, как показано ниже.

Скачать CouchDB

Если вы нажмете на кнопку загрузки, то откроется страница, на которой будут предоставлены ссылки для загрузки CouchDB в различных форматах. Следующий снимок иллюстрирует то же самое.

Форматы CouchDB

Выберите ссылку для загрузки для систем Windows и выберите одно из предоставленных зеркал, чтобы начать загрузку.

Установка CouchDB

CouchDB будет загружен в вашу систему в виде установочного файла с именем setup-couchdb-1.6.1_R16B02.exe. Запустите установочный файл и продолжите установку.

После установки откройте встроенный веб-интерфейс CouchDB, перейдя по следующей ссылке: http://127.0.0.1:5984/. Если все пойдет хорошо, это даст вам веб-страницу со следующим выводом.

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

Вы можете взаимодействовать с веб-интерфейсом CouchDB, используя следующий URL —

http://127.0.0.1:5984/_utils/

Это показывает вам страницу индекса Futon, который является веб-интерфейсом CouchDB.

Веб интерфейс

Установка CouchDB в системах Linux

Для многих Linux-систем они предоставляют CouchDB для внутреннего использования. Чтобы установить этот CouchDB, следуйте инструкциям.

В Ubuntu и Debian вы можете использовать —

sudo aptitude install couchdb

В Gentoo Linux доступен ebuild CouchDB —

sudo emerge couchdb

Если ваша система Linux не имеет CouchDB, следуйте следующему разделу, чтобы установить CouchDB и его зависимости.

Установка зависимостей CouchDB

Ниже приведен список зависимостей, которые должны быть установлены для получения CouchDB в вашей системе.

  • Erlang OTP
  • ICU
  • OpenSSL
  • Mozilla SpiderMonkey
  • GNU Make
  • Коллекция компиляторов GNU
  • Libcurl
  • help2man
  • Python для документов
  • Питон Сфинкс

Чтобы установить эти зависимости, введите следующие команды в терминале. Здесь мы используем Centos 6.5, и следующие команды установят необходимое программное обеспечение, совместимое с 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

Примечание. Для всех этих команд вам нужно использовать sudo. Следующая процедура преобразует обычного пользователя в sudoer.

  • Войдите в систему как пользователь root с правами администратора.

  • Откройте файл sudo, используя следующую команду —

Войдите в систему как пользователь root с правами администратора.

Откройте файл sudo, используя следующую команду —

visudo
  • Затем отредактируйте, как показано ниже, чтобы предоставить существующему пользователю привилегии sudoer —
Hadoop All=(All) All , and press esc : x to write the changes to the file. 

После загрузки всех зависимостей в вашей системе, загрузите CouchDB, следуя приведенным инструкциям.

Скачивание CouchDB

Apache Software Foundation не предоставит полный файл .tar для CouchDB, поэтому его необходимо установить из исходного кода.

Создайте новый каталог для установки CouchDB, перейдите к такому созданному каталогу и загрузите исходный код CouchDB, выполнив следующие команды:

$ 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

Это загрузит исходный файл CouchDB в вашу систему. Теперь распакуйте файл apache-couchdb-1.6.1.tar.gz, как показано ниже.

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

Конфигурирование CouchDB

Чтобы настроить CouchDB, выполните следующие действия:

  • Перейдите в домашнюю папку CouchDB.
  • Войдите как суперпользователь.
  • Настройте, используя ./configure, как показано ниже —
$ cd apache-couchdb-1.6.1
$ su
Password:
# ./configure --with-erlang=/usr/lib64/erlang/usr/include/

В результате вы получите следующий вывод, аналогичный показанному ниже с заключительной строкой: « Вы настроили Apache CouchDB, пора расслабиться .

# ./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.

Установка CouchDB

Теперь введите следующую команду, чтобы установить CouchDB в вашей системе.

# make && sudo make install

Он устанавливает CouchDB в вашей системе с заключительной строкой: « Вы установили Apache CouchDB, пора отдыхать .

Запуск CouchDB

Чтобы запустить CouchDB, перейдите в домашнюю папку CouchDB и используйте следующую команду:

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

Он запускает CouchDB, давая следующий вывод:

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

верификация

Поскольку CouchDB является веб-интерфейсом, попробуйте ввести следующий URL-адрес домашней страницы в браузере.

http://127.0.0.1:5984/

Он производит следующий вывод —

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

CouchDB — Curl & Futon

CURL Утилита

Утилита cURL — это способ связи с CouchDB.

Это инструмент для передачи данных с или на сервер, используя один из поддерживаемых протоколов (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP или FILE). Команда предназначена для работы без взаимодействия с пользователем. cURL предлагает множество полезных трюков, таких как поддержка прокси, аутентификация пользователя, загрузка ftp, HTTP post, соединения SSL (https :), куки, возобновление передачи файлов и многое другое.

Утилита cURL доступна в операционных системах, таких как UNIX, Linux, Mac OS X и Windows. Это утилита командной строки, с помощью которой пользователь может получить доступ к протоколу HTTP прямо из командной строки. В этой главе вы узнаете, как использовать утилиту cURL.

Использование утилиты cURL

Вы можете получить доступ к любому веб-сайту с помощью утилиты cURL, просто набрав cURL, а затем адрес веб-сайта, как показано ниже —

curl www.tutorialspoint.com/

По умолчанию утилита cURL возвращает исходный код запрашиваемой страницы. Он отображает этот код в окне терминала.

Параметры утилиты cURL

Утилита cURL предоставляет различные опции для работы, и вы можете увидеть их в справке утилиты cURL.

Следующий код показывает некоторую часть справки 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

При общении с CouchDB широко использовались определенные опции утилиты cURL. Ниже приведены краткие описания некоторых важных опций утилиты cURL, в том числе используемых CouchDB.

Флаг -X

(HTTP) Определяет пользовательский метод запроса, используемый при взаимодействии с HTTP-сервером. Указанный запрос используется вместо используемого в противном случае метода (по умолчанию используется GET). Прочитайте спецификацию HTTP 1.1 для деталей и объяснений.

(FTP) Определяет настраиваемую команду FTP для использования вместо LIST при создании списков файлов с помощью ftp.

-ЧАС

(HTTP) Дополнительный заголовок используется при получении веб-страницы. Обратите внимание, что если вы добавите пользовательский заголовок, имя которого совпадает с именем одного из внутренних, которое будет использовать cURL, вместо внутреннего будет использоваться ваш внешний установленный заголовок. Это позволяет сделать работу еще сложнее, чем обычно делает cURL. Вы не должны заменять внутренние заголовки, не зная точно, что вы делаете. Замена внутреннего заголовка заголовком без содержимого в правой части двоеточия предотвратит появление этого заголовка.

cURL гарантирует, что каждый добавленный / замененный заголовок будет отправлен с соответствующим маркером конца строки. Ни вы не должны добавлять это как часть содержимого заголовка, ни добавлять новые строки или возврат каретки к беспорядочным вещам.

Смотрите также параметры -A / — user-agent и -e / — referer.

Эта опция может использоваться несколько раз для добавления / замены / удаления нескольких заголовков.

флаг

Используя этот флаг cURL, вы можете отправлять данные вместе с HTTP-запросом POST на сервер, как если бы он был заполнен пользователем в форме и отправлен.

пример

Предположим, что есть веб-сайт, и вы хотите войти на него или отправить некоторые данные на веб-сайт, используя флаг –d утилиты cURL, как показано ниже.

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

Он отправляет фрагмент сообщения, который выглядит как «userid = 001 & password = tutorialspoint» . Также вы можете отправлять документы (JSON), используя флаг -d.

флаг

Используя этот флаг, cURL записывает вывод запроса в файл.

пример

В следующем примере показано использование флага -o утилиты 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

Он получает исходный код домашней страницы tutorialspoint.com, создает файл с именем example.com и сохраняет выходные данные в файле example.html.

Ниже приведен снимок файла example.html .

Пример HTML

Этот флаг аналогичен –o , единственное отличие состоит в том, что этот флаг создает новый файл с тем же именем, что и запрошенный URL-адрес, и исходный код запрошенного URL-адреса будет скопирован в него.

пример

В следующем примере показано использование флага -O утилиты 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

Он создает новый файл с именем index.htm и сохраняет в нем исходный код страницы индекса tutorialspoint.com.

Привет CouchDB

Вы можете получить доступ к домашней странице CouchDB, отправив запрос GET на установленный экземпляр CouchDB. Прежде всего убедитесь, что вы установили CouchDB в вашей среде Linux, и он успешно работает, а затем используйте следующий синтаксис для отправки запроса на получение экземпляра CouchDB.

curl http://127.0.0.1:5984/

Это дает вам документ JSON, как показано ниже, где CouchDB указывает такие детали, как номер версии, имя поставщика и версия программного обеспечения.

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

Список всех баз данных

Вы можете получить список всех созданных баз данных, отправив запрос get вместе со строкой «_all_dbs string» . Ниже приведен синтаксис для получения списка всех баз данных в CouchDB.

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

Это дает вам список всех баз данных в CouchDB, как показано ниже.

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

Создание базы данных

Вы можете создать базу данных в CouchDB, используя cURL с заголовком PUT, используя следующий синтаксис:

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

пример

В качестве примера, используя приведенный выше синтаксис, создайте базу данных с именем my_database, как показано ниже.

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

верификация

Проверьте, создана ли база данных, перечислив все базы данных, как показано ниже. Здесь вы можете увидеть имя вновь созданной базы данных «my_database» в списке

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

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

Получение информации о базе данных

Вы можете получить информацию о базе данных, используя запрос get вместе с именем базы данных. Ниже приводится синтаксис для получения информации о базе данных.

пример

В качестве примера давайте получим информацию о базе данных с именем my_database, как показано ниже. Здесь вы можете получить информацию о вашей базе данных в ответ.

$ 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 — это встроенный веб-интерфейс администрирования CouchDB. Он предоставляет простой графический интерфейс, с помощью которого вы можете взаимодействовать с CouchDB. Это простой интерфейс, обеспечивающий полный доступ ко всем функциям CouchDB. Ниже приведен список этих функций —

Базы данных —

  • Создает базы данных.
  • Уничтожает базы данных.

Документы —

  • Создает документы.
  • Обновляет документы.
  • Редактирует документы.
  • Удаляет документы.

Начиная Футон

Убедитесь, что CouchDB запущен, а затем откройте следующий URL в браузере —

http://127.0.0.1:5984/_utils/

Если вы откроете этот URL, он отобразит домашнюю страницу Futon, как показано ниже —

Домашняя страница Футон

  • В левой части этой страницы вы можете увидеть список всех текущих баз данных CouchDB. На этом рисунке у нас есть база данных с именем my_database , а также системные базы данных _replicator и _user .

  • На правой стороне вы можете увидеть следующее —

    • Инструменты — в этом разделе вы можете найти Конфигурация для настройки CouchDB, Replicator для выполнения репликаций и Status для проверки состояния CouchDB и последних изменений, выполненных на CouchDB.

    • Документация — этот раздел содержит полную документацию по последней версии CouchDB.

    • Диагностика — при этом вы можете проверить установку CouchDB.

    • Последние базы данных — в этом разделе вы можете найти имена недавно добавленных баз данных.

В левой части этой страницы вы можете увидеть список всех текущих баз данных CouchDB. На этом рисунке у нас есть база данных с именем my_database , а также системные базы данных _replicator и _user .

На правой стороне вы можете увидеть следующее —

Инструменты — в этом разделе вы можете найти Конфигурация для настройки CouchDB, Replicator для выполнения репликаций и Status для проверки состояния CouchDB и последних изменений, выполненных на CouchDB.

Документация — этот раздел содержит полную документацию по последней версии CouchDB.

Диагностика — при этом вы можете проверить установку CouchDB.

Последние базы данных — в этом разделе вы можете найти имена недавно добавленных баз данных.

CouchDB — HTTP API

Используя заголовки HTTP-запроса, вы можете общаться с CouchDB. С помощью этих запросов мы можем извлекать данные из базы данных, сохранять данные в базе данных в форме документов, а также просматривать и форматировать документы, хранящиеся в базе данных.

Форматы HTTP-запросов

При общении с базой данных мы будем использовать различные форматы запросов, такие как get, head, post, put, delete и copy. Для всех операций в CouchDB входные данные и выходные структуры данных будут в форме объекта JavaScript Object Notation (JSON).

Ниже приведены различные форматы запросов протокола HTTP, используемые для связи с CouchDB.

  • GET — этот формат используется для получения определенного элемента. Чтобы получить разные предметы, вы должны отправить конкретные шаблоны URL. В CouchDB, используя этот запрос GET, мы можем получить статические элементы, документы базы данных и конфигурацию, а также статистическую информацию в форме документов JSON (в большинстве случаев).

  • HEAD — метод HEAD используется для получения HTTP-заголовка запроса GET без тела ответа.

  • POST — почтовый запрос используется для загрузки данных. В CouchDB, используя запрос POST, вы можете устанавливать значения, загружать документы, устанавливать значения документов, а также запускать определенные административные команды.

  • PUT — используя запрос PUT, вы можете создавать новые объекты, базы данных, документы, представления и проектные документы.

  • УДАЛИТЬ — Используя запрос УДАЛИТЬ, вы можете удалять документы, виды и документы дизайна.

  • COPY — используя метод COPY, вы можете копировать документы и объекты.

GET — этот формат используется для получения определенного элемента. Чтобы получить разные предметы, вы должны отправить конкретные шаблоны URL. В CouchDB, используя этот запрос GET, мы можем получить статические элементы, документы базы данных и конфигурацию, а также статистическую информацию в форме документов JSON (в большинстве случаев).

HEAD — метод HEAD используется для получения HTTP-заголовка запроса GET без тела ответа.

POST — почтовый запрос используется для загрузки данных. В CouchDB, используя запрос POST, вы можете устанавливать значения, загружать документы, устанавливать значения документов, а также запускать определенные административные команды.

PUT — используя запрос PUT, вы можете создавать новые объекты, базы данных, документы, представления и проектные документы.

УДАЛИТЬ — Используя запрос УДАЛИТЬ, вы можете удалять документы, виды и документы дизайна.

COPY — используя метод COPY, вы можете копировать документы и объекты.

Заголовки HTTP-запросов

Заголовки HTTP должны быть предоставлены, чтобы получить правильный формат и кодировку. Отправляя запрос на сервер CouchDB, вы можете отправлять заголовки запроса Http вместе с запросом. Ниже приведены различные заголовки запроса Http.

  • Content-type — этот заголовок используется для указания типа содержимого данных, которые мы предоставляем серверу вместе с запросом. В основном тип контента, который мы отправляем вместе с запросом, будет MIME-тип или JSON (application / json). Использование Content-type по запросу настоятельно рекомендуется.

  • Принять — этот заголовок используется для указания сервера, списка типов данных, которые клиент может понять, чтобы сервер отправлял свой ответ, используя эти типы данных. Как правило, здесь вы можете отправить список типов данных MIME, которые принимает клиент, через двоеточие.

    Хотя использование Accept в запросах CouchDB не требуется, настоятельно рекомендуется убедиться, что возвращенные данные могут быть обработаны клиентом.

Content-type — этот заголовок используется для указания типа содержимого данных, которые мы предоставляем серверу вместе с запросом. В основном тип контента, который мы отправляем вместе с запросом, будет MIME-тип или JSON (application / json). Использование Content-type по запросу настоятельно рекомендуется.

Принять — этот заголовок используется для указания сервера, списка типов данных, которые клиент может понять, чтобы сервер отправлял свой ответ, используя эти типы данных. Как правило, здесь вы можете отправить список типов данных MIME, которые принимает клиент, через двоеточие.

Хотя использование Accept в запросах CouchDB не требуется, настоятельно рекомендуется убедиться, что возвращенные данные могут быть обработаны клиентом.

Заголовки ответа

Это заголовки ответа, отправленного сервером. Эти заголовки предоставляют информацию о контенте, отправляемом сервером в качестве ответа.

  • Content-type — этот заголовок указывает MIME-тип данных, возвращаемых сервером. Для большинства запросов возвращаемый тип MIME — это text / plain.

  • Cache-control — этот заголовок предлагает клиенту обработать информацию, отправленную сервером. CouchDB в основном возвращает must-revalidate, который указывает, что информация должна быть проверена заново, если это возможно.

  • Длина содержимого — этот заголовок возвращает длину содержимого, отправляемого сервером, в байтах.

  • Etag — этот заголовок используется для отображения ревизии документа или представления.

Content-type — этот заголовок указывает MIME-тип данных, возвращаемых сервером. Для большинства запросов возвращаемый тип MIME — это text / plain.

Cache-control — этот заголовок предлагает клиенту обработать информацию, отправленную сервером. CouchDB в основном возвращает must-revalidate, который указывает, что информация должна быть проверена заново, если это возможно.

Длина содержимого — этот заголовок возвращает длину содержимого, отправляемого сервером, в байтах.

Etag — этот заголовок используется для отображения ревизии документа или представления.

Коды состояния

Ниже приведена табличная форма кода состояния, отправляемого заголовком http, и его описание.

Sr.No. Код состояния и описание
1

200 — ОК

Этот статус будет выдан после успешного выполнения запроса.

2

201 — Создано

Этот статус будет выдан при создании документа.

3

202 — принято

Этот статус будет выдан, когда запрос будет принят.

4

404 — не найден

Этот статус будет выдан, когда сервер не сможет найти запрошенный контент.

5

405 — Ресурс не разрешен

Этот статус выдается, когда используемый тип HTTP-запроса недействителен.

6

409 — Конфликт

Этот статус выдается каждый раз, когда возникает конфликт обновления.

7

415 — неверный тип контента

Этот статус указывает на то, что запрошенный тип контента не поддерживается сервером.

8

500 — Внутренняя ошибка сервера

Этот статус выдается всякий раз, когда данные, отправленные в запросе, являются недействительными.

200 — ОК

Этот статус будет выдан после успешного выполнения запроса.

201 — Создано

Этот статус будет выдан при создании документа.

202 — принято

Этот статус будет выдан, когда запрос будет принят.

404 — не найден

Этот статус будет выдан, когда сервер не сможет найти запрошенный контент.

405 — Ресурс не разрешен

Этот статус выдается, когда используемый тип HTTP-запроса недействителен.

409 — Конфликт

Этот статус выдается каждый раз, когда возникает конфликт обновления.

415 — неверный тип контента

Этот статус указывает на то, что запрошенный тип контента не поддерживается сервером.

500 — Внутренняя ошибка сервера

Этот статус выдается всякий раз, когда данные, отправленные в запросе, являются недействительными.

HTTP URL Paths

Существуют определенные URL-пути, с помощью которых вы можете напрямую взаимодействовать с базой данных. Ниже приведен табличный формат таких URL-путей.

Sr.No. URL и операция
1

PUT / дБ

Этот URL-адрес используется для создания новой базы данных.

2

GET / дБ

Этот URL-адрес используется для получения информации о существующей базе данных.

3

PUT / db / document

Этот URL-адрес используется для создания документа / обновления существующего документа.

4

GET / db / document

Этот URL-адрес используется для получения документа.

5

УДАЛИТЬ / DB / документ

Этот URL-адрес используется для удаления указанного документа из указанной базы данных.

6

GET / db / _design / design-doc

Этот URL используется, чтобы получить определение проектного документа.

7

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

Этот URL-адрес используется для доступа к представлению view-name из проектного документа из указанной базы данных.

PUT / дБ

Этот URL-адрес используется для создания новой базы данных.

GET / дБ

Этот URL-адрес используется для получения информации о существующей базе данных.

PUT / db / document

Этот URL-адрес используется для создания документа / обновления существующего документа.

GET / db / document

Этот URL-адрес используется для получения документа.

УДАЛИТЬ / DB / документ

Этот URL-адрес используется для удаления указанного документа из указанной базы данных.

GET / db / _design / design-doc

Этот URL используется, чтобы получить определение проектного документа.

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

Этот URL-адрес используется для доступа к представлению view-name из проектного документа из указанной базы данных.

CouchDB — Создание базы данных

База данных — это самая внешняя структура данных в CouchDB, где хранятся ваши документы. Вы можете создать эти базы данных, используя утилиту cURL, предоставляемую CouchDB, а также Futon веб-интерфейс CouchDB.

Создание базы данных с помощью утилиты cURL

Вы можете создать базу данных в CouchDB, отправив HTTP-запрос на сервер, используя метод PUT через утилиту cURL. Ниже приведен синтаксис для создания базы данных —

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

Используя -X мы можем указать используемый HTTP-метод запроса. В этом случае мы используем метод PUT. Когда мы используем операцию / метод PUT, содержимое URL указывает имя объекта, которое мы создаем с помощью HTTP-запроса. Здесь мы должны отправить имя базы данных, используя запрос put в URL для создания базы данных.

пример

Используя приведенный выше синтаксис, если вы хотите создать базу данных с именем my_database , вы можете создать ее следующим образом

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

В ответ сервер вернет вам JSON-документ с содержимым «ok»true, что означает, что операция прошла успешно.

верификация

Проверьте, создана ли база данных, перечислив все базы данных, как показано ниже. Здесь вы можете увидеть имя вновь созданной базы данных «my_database» в списке.

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

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

Создание базы данных с использованием Futon

Чтобы создать базу данных, откройте http://127.0.0.1:5984/_utils/ . Вы получите обзорную / индексную страницу CouchDB, как показано ниже.

Домашняя страница Футон

На этой странице вы можете увидеть список баз данных в CouchDB, опциональная кнопка Создать базу данных слева.

Теперь нажмите на ссылку создать базу данных. Вы можете увидеть всплывающее окно « Создать новые базы данных» с запросом имени базы данных для новой базы данных. Выберите любое имя в соответствии с указанными критериями. Здесь мы создаем еще одну базу данных с именем tutorials_point. Нажмите на кнопку создания, как показано на следующем снимке экрана.

Создать базу данных

CouchDB — удаление базы данных

Удаление базы данных с помощью утилиты cURL

Вы можете удалить базу данных в CouchDB, отправив запрос на сервер, используя метод DELETE через утилиту cURL. Ниже приведен синтаксис для создания базы данных —

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

Используя -X мы можем указать пользовательский метод запроса HTTP, который мы используем, при взаимодействии с HTTP-сервером. В этом случае мы используем метод DELETE. Отправьте URL-адрес на сервер, указав в нем базу данных, которую необходимо удалить.

пример

Предположим, что в CouchDB есть база данных с именем my_database2. Используя приведенный выше синтаксис, если вы хотите удалить его, вы можете сделать это следующим образом —

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

В ответ сервер вернет вам JSON-документ с содержимым «ok»true, что означает, что операция прошла успешно.

верификация

Убедитесь, что база данных удалена, перечислив все базы данных, как показано ниже. Здесь вы можете увидеть имя удаленной базы данных, my_database в списке отсутствует.

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

[ "_replicator " , " _users " ]

Удаление базы данных с помощью Futon

Чтобы удалить базу данных, откройте http://127.0.0.1:5984/_utils/ url, где вы получите страницу обзора / индекса CouchDB, как показано ниже.

Удалить базу данных1

Здесь вы можете увидеть три пользовательских базы данных. Давайте удалим базу данных с именем tutorials_point2. Чтобы удалить базу данных, выберите одну из списка баз данных и нажмите на нее, что приведет к странице обзора выбранной базы данных, где вы сможете увидеть различные операции с базами данных. Следующий скриншот показывает то же самое —

Удалить базу данных2

Среди них вы можете найти опцию Удалить базу данных . Нажав на нее, вы получите всплывающее окно с вопросом, уверены ли вы! Нажмите на удалить, чтобы удалить выбранную базу данных.

Удалить базу данных3

CouchDB — Создание документа

Документы являются центральной структурой данных CouchDB. Содержимое базы данных будет храниться в виде документов вместо таблиц. Вы можете создавать эти документы, используя утилиту cURL, предоставляемую CouchDB, а также Futon. В этой главе рассматриваются способы создания документа в базе данных.

Каждый документ в CouchDB имеет уникальный идентификатор. Вы можете выбрать свой собственный идентификатор, который должен быть в форме строки. Обычно используется UUID (универсальный уникальный идентификатор), который представляет собой случайные числа, которые имеют наименьшую вероятность создания дубликата. Они предпочтительнее, чтобы избежать столкновений.

Создание документа с использованием утилиты cURL

Вы можете создать документ в CouchDB, отправив HTTP-запрос на сервер, используя метод PUT через утилиту cURL. Ниже приведен синтаксис для создания документа.

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

Используя -X , мы можем указать пользовательский метод запроса HTTP, который мы используем, при взаимодействии с HTTP-сервером. В этом случае мы используем метод PUT. Когда мы используем метод PUT, содержимое url указывает имя объекта, которое мы создаем с помощью HTTP-запроса. Здесь мы должны отправить следующее —

  • Имя базы данных, в которой мы создаем документ.

  • Идентификатор документа.

  • Данные документа. Опция -d используется для отправки данных / документа через HTTP-запрос. При написании документа просто введите пары полей-значений, разделенные двоеточием, в цветочных скобках, как показано ниже —

Имя базы данных, в которой мы создаем документ.

Идентификатор документа.

Данные документа. Опция -d используется для отправки данных / документа через HTTP-запрос. При написании документа просто введите пары полей-значений, разделенные двоеточием, в цветочных скобках, как показано ниже —

{
   Name : Raju
   age : 23
   Designation : Designer
}

пример

Используя приведенный выше синтаксис, если вы хотите создать документ с идентификатором 001 в базе данных с именем my_database , вы можете создать его, как показано ниже.

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

Ответ CouchDB на этот запрос содержит три поля:

  • «ОК», указывая, что операция прошла успешно.

  • «id», в котором хранится идентификатор документа и

  • «rev», это указывает на идентификатор ревизии. Каждый раз, когда вы редактируете (обновляете или модифицируете) документ, CouchDB генерирует значение _rev . Если вы хотите обновить или удалить документ, CouchDB ожидает, что вы включите поле _rev ревизии, которую вы хотите изменить. Когда CouchDB принимает изменение, оно генерирует новый номер редакции. Этот механизм обеспечивает контроль параллелизма.

«ОК», указывая, что операция прошла успешно.

«id», в котором хранится идентификатор документа и

«rev», это указывает на идентификатор ревизии. Каждый раз, когда вы редактируете (обновляете или модифицируете) документ, CouchDB генерирует значение _rev . Если вы хотите обновить или удалить документ, CouchDB ожидает, что вы включите поле _rev ревизии, которую вы хотите изменить. Когда CouchDB принимает изменение, оно генерирует новый номер редакции. Этот механизм обеспечивает контроль параллелизма.

верификация

Если вы хотите просмотреть созданный документ, вы можете получить его, используя документ, как показано ниже.

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

Создание документа с использованием Futon

Чтобы создать документ, откройте http://127.0.0.1:5984/_utils/ url, чтобы получить обзорную / индексную страницу CouchDB, как показано ниже.

Создать документ

Выберите базу данных, в которой вы хотите создать документ. Откройте страницу обзора базы данных и выберите опцию « Новый документ», как показано ниже.

Новый документ

Когда вы выбираете опцию New Document , CouchDB создает новый документ базы данных, назначая ему новый идентификатор. Вы можете редактировать значение идентификатора и можете назначить свое собственное значение в виде строки. На следующем рисунке мы создали новый документ с идентификатором 001.

Новый документ ID

На этой странице вы можете наблюдать три варианта — сохранить документ, добавить поле и загрузить вложение.

Добавить поле в документ

Чтобы добавить поле в документ, нажмите « Добавить поле» . После создания базы данных вы можете добавить в нее поле, используя эту опцию. Нажав на нее, вы получите пару текстовых полей, а именно, поле, значение. Вы можете редактировать эти значения, нажимая на них. Отредактируйте эти значения и введите желаемую пару поле-значение. Нажмите на зеленую кнопку, чтобы сохранить эти значения.

На следующем рисунке мы создали три поля: Имя, Возраст и Назначение сотрудника.

Создать поле

Сохранить документ

Вы можете сохранить изменения, внесенные в документ, нажав на эту опцию. После сохранения будет создан новый идентификатор _rev , как показано ниже.

Сохранить документ

CouchDB — Обновление документа

Обновление документов с использованием cURL

Вы можете обновить документ в CouchDB, отправив HTTP-запрос на сервер, используя метод PUT через утилиту cURL. Ниже приводится синтаксис для обновления документа.

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

пример

Предположим, что в базе данных есть документ с идентификатором 001 с именем my_database. Вы можете удалить это, как показано ниже.

Прежде всего, получите идентификатор редакции документа, который должен быть обновлен. Вы можете найти _rev документа в самом документе, поэтому получите документ, как показано ниже.

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

Используйте идентификатор редакции _rev из документа, чтобы обновить документ. Здесь мы обновляем возраст с 23 до 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 " }

верификация

Чтобы проверить документ, получите документ снова, используя запрос GET, как показано ниже.

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

Заметка

Ниже приведены некоторые важные моменты, которые следует отметить при обновлении документа.

  • URL-адрес, который мы отправляем в запросе, содержащий имя базы данных и идентификатор документа.

  • Обновление существующего документа аналогично обновлению всего документа. Вы не можете добавить поле в существующий документ. Вы можете записать в базу данных только новую версию документа с тем же идентификатором документа.

  • Мы должны предоставить номер ревизии как часть запроса JSON.

  • В свою очередь, JSON содержит сообщение об успехе, идентификатор обновляемого документа и информацию о новой редакции. Если вы хотите обновить новую версию документа, вы должны указать этот последний номер редакции.

URL-адрес, который мы отправляем в запросе, содержащий имя базы данных и идентификатор документа.

Обновление существующего документа аналогично обновлению всего документа. Вы не можете добавить поле в существующий документ. Вы можете записать в базу данных только новую версию документа с тем же идентификатором документа.

Мы должны предоставить номер ревизии как часть запроса JSON.

В свою очередь, JSON содержит сообщение об успехе, идентификатор обновляемого документа и информацию о новой редакции. Если вы хотите обновить новую версию документа, вы должны указать этот последний номер редакции.

Обновление документов с помощью Futon

Чтобы удалить документ, откройте http://127.0.0.1:5984/_utils/ url, чтобы получить обзорную / индексную страницу CouchDB, как показано ниже.

Создать документ

Выберите базу данных, в которой существует обновляемый документ, и щелкните по ней. Здесь мы обновляем документ в базе данных с именем tutorials_point . Вы получите список документов в базе данных, как показано ниже.

Обновить документ

Выберите документ, который вы хотите обновить, и щелкните по нему. Вы получите содержимое документов, как показано ниже.

Содержание документа

Здесь, чтобы обновить местоположение от Дели до Хайдарабада, нажмите на текстовое поле, отредактируйте поле и нажмите зеленую кнопку, чтобы сохранить изменения, как показано ниже.

Сохранить изменения

CouchDB — удаление документа

Удаление документа с помощью утилиты cURL

Вы можете удалить документ в CouchDB, отправив HTTP-запрос на сервер, используя метод DELETE с помощью утилиты cURL. Ниже приведен синтаксис для удаления документа.

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

Используя -X, мы можем указать пользовательский метод запроса HTTP, который мы используем, при взаимодействии с HTTP-сервером. В этом случае мы используем метод Delete. Для удаления базы данных /database_name/database_id/ недостаточно. Вы должны передать идентификатор последней ревизии через URL. Чтобы упомянуть атрибуты любой структуры данных «?» используется.

пример

Предположим, что в базе данных есть документ с именем my_database с идентификатором документа 001. Чтобы удалить этот документ, вы должны получить идентификатор версии документа. Получите данные документа, как показано ниже.

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

Теперь укажите идентификатор редакции удаляемого документа, идентификатор документа и имя базы данных, к которой принадлежит документ, как показано ниже —

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

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

верификация

Чтобы убедиться, что документ удален, попробуйте извлечь документ с помощью метода GET . Поскольку вы извлекаете удаленный документ, появится сообщение об ошибке, как показано ниже.

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

Удаление документа с помощью Futon

Прежде всего, проверьте документы в базе данных. Ниже приведен снимок базы данных с именем tutorials_point .

Удаление документа

Здесь вы можете наблюдать, база данных состоит из трех документов. Чтобы удалить любой из документов, скажем, 003, выполните следующие действия:

  • Нажмите на документ, вы получите страницу, показывающую содержимое выбранного документа в виде пар поле-значение.

  • Эта страница также содержит четыре параметра: Сохранить документ, Добавить поле, Загрузить вложение, Удалить документ.

  • Нажмите на опцию Удалить документ .

  • Вы получите диалоговое окно с надписью «Вы уверены, что хотите удалить этот документ?» Нажмите на удалить, чтобы удалить документ.

Нажмите на документ, вы получите страницу, показывающую содержимое выбранного документа в виде пар поле-значение.

Эта страница также содержит четыре параметра: Сохранить документ, Добавить поле, Загрузить вложение, Удалить документ.

Нажмите на опцию Удалить документ .

Вы получите диалоговое окно с надписью «Вы уверены, что хотите удалить этот документ?» Нажмите на удалить, чтобы удалить документ.

Удалить документ2

CouchDB — Вложение файлов

Вложение файлов с помощью cURL

Вы можете прикреплять файлы к CouchDB так же, как к электронной почте. Файл содержит метаданные типа name и включает его тип MIME и количество байтов, содержащихся во вложении. Чтобы прикрепить файлы к документу, необходимо отправить запрос PUT на сервер. Ниже приведен синтаксис для прикрепления файлов к документу:

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

Запрос имеет различные варианты, которые описаны ниже.

  • —data-binary @ — эта опция указывает cURL читать содержимое файла в тело HTTP-запроса.

  • -H — эта опция используется для указания типа содержимого файла, который мы собираемся загрузить.

—data-binary @ — эта опция указывает cURL читать содержимое файла в тело HTTP-запроса.

-H — эта опция используется для указания типа содержимого файла, который мы собираемся загрузить.

пример

Давайте прикрепим файл с именем boy.jpg к документу с идентификатором 001 в базе данных с именем my_database , отправив запрос PUT в CouchDB. Перед этим вы должны получить данные документа с идентификатором 001, чтобы получить его текущий идентификатор версии, как показано ниже.

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

Теперь, используя значение _rev , отправьте запрос PUT на сервер CouchDB, как показано ниже.

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

верификация

Чтобы проверить, загружено ли вложение, загрузите содержимое документа, как показано ниже.

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

Вложение файлов с помощью Futon

Загрузить вложение

Используя эту опцию, вы можете загрузить новое вложение, такое как файл, изображение или документ, в базу данных. Для этого нажмите кнопку Загрузить вложение . Появится диалоговое окно, где вы можете выбрать файл для загрузки. Выберите файл и нажмите кнопку « Загрузить» .

Загрузить вложение

Загруженный файл будет отображаться в поле _attachments. Позже вы можете увидеть файл, нажав на него.