CouchDB - Guide rapide

Le système de gestion de base de données fournit un mécanisme de stockage et de récupération des données. Il existe trois principaux types de systèmes de gestion de base de données, à savoir le SGBDR (systèmes de gestion de base de données relationnelle), OLAP (systèmes de traitement analytique en ligne) et NoSQL.

SGBDR

RDBMS signifie Relational Database Management System. Le SGBDR est la base de SQL et de tous les systèmes de base de données modernes tels que MS SQL Server, IBM DB2, Oracle, MySQL et Microsoft Access.

Un système de gestion de base de données relationnelle (SGBDR) est un système de gestion de base de données (SGBD) basé sur le modèle relationnel introduit par EF Codd.

Les données du SGBDR sont stockées dans des objets de base de données appelés tables. Le tableau est une collection d'entrées de données associées et se compose de colonnes et de lignes. Il ne stocke que des données structurées.

OLAP

Le serveur de traitement analytique en ligne (OLAP) est basé sur le modèle de données multidimensionnel. Il permet aux gestionnaires et aux analystes d'avoir un aperçu des informations grâce à un accès rapide, cohérent et interactif aux informations.

Bases de données NoSQL

Une base de données NoSQL (parfois appelée Not Only SQL) est une base de données qui fournit un mécanisme pour stocker et récupérer des données autres que les relations tabulaires utilisées dans les bases de données relationnelles. Ces bases de données sont sans schéma, prennent en charge une réplication facile, ont une API simple, finalement cohérente, et peuvent gérer d'énormes quantités de données (big data).

L'objectif principal d'une base de données NoSQL est d'avoir les éléments suivants -

  • Simplicité de conception,
  • Mise à l'échelle horizontale, et
  • Contrôle plus fin de la disponibilité.

Les bases de données NoSQL utilisent des structures de données différentes des bases de données relationnelles. Cela accélère certaines opérations dans NoSQL. L'adéquation d'une base de données NoSQL donnée dépend du problème qu'elle doit résoudre. Ces bases de données stockent à la fois des données structurées et des données non structurées telles que des fichiers audio, des fichiers vidéo, des documents, etc. Ces bases de données NoSQL sont classées en trois types et sont expliquées ci-dessous.

Key-value Store- Ces bases de données sont conçues pour stocker des données dans des paires clé-valeur et ces bases de données n'auront aucun schéma. Dans ces bases de données, chaque valeur de données se compose d'une clé indexée et d'une valeur pour cette clé.

Exemples - BerkeleyDB, Cassandra, DynamoDB, Riak.

Column Store- Dans ces bases de données, les données sont stockées dans des cellules regroupées en colonnes de données, et ces colonnes sont ensuite regroupées en familles de colonnes. Ces familles de colonnes peuvent contenir n'importe quel nombre de colonnes.

Exemples - BigTable, HBase et HyperTable.

Document Store- Ce sont les bases de données développées sur l'idée de base des magasins clé-valeur où les «documents» contiennent des données plus complexes. Ici, chaque document se voit attribuer une clé unique, qui est utilisée pour récupérer le document. Ils sont conçus pour stocker, récupérer et gérer des informations orientées document, également appelées données semi-structurées.

Exemples - CouchDB et MongoDB.

Qu'est-ce que CouchDB?

CouchDB est une base de données open source développée par la fondation logicielle Apache. L'accent est mis sur la facilité d'utilisation, embrassant le Web. Il s'agit d'une base de données de stockage de documents NoSQL.

Il utilise JSON, pour stocker des données (documents), un script java comme langage de requête pour transformer les documents, le protocole http pour api pour accéder aux documents, interroger les index avec le navigateur Web. Il s'agit d'une application multi-master sortie en 2005 et devenue un projet apache en 2008.

Pourquoi CouchDB?

  • CouchDB dispose d'une API REST basée sur HTTP, qui permet de communiquer facilement avec la base de données. Et la structure simple des ressources et méthodes HTTP (GET, PUT, DELETE) est facile à comprendre et à utiliser.

  • Comme nous stockons les données dans la structure flexible basée sur des documents, il n'y a pas lieu de s'inquiéter de la structure des données.

  • Les utilisateurs disposent d'un mappage de données puissant, qui permet d'interroger, de combiner et de filtrer les informations.

  • CouchDB fournit une réplication facile à utiliser, grâce à laquelle vous pouvez copier, partager et synchroniser les données entre les bases de données et les machines.

Modèle de données

  • La base de données est la structure / le conteneur de données le plus externe de CouchDB.

  • Chaque base de données est une collection de documents indépendants.

  • Chaque document conserve ses propres données et son schéma autonome.

  • Les métadonnées du document contiennent des informations de révision, ce qui permet de fusionner les différences survenues lors de la déconnexion des bases de données.

  • CouchDB implémente un contrôle d'accès concurrentiel multi-version, pour éviter d'avoir à verrouiller le champ de la base de données pendant les écritures.

Caractéristiques de CouchDB: réduire le contenu

Stockage de documents

CouchDB est une base de données NoSQL de stockage de documents. Il fournit la possibilité de stocker des documents avec des noms uniques, et il fournit également une API appelée API HTTP RESTful pour lire et mettre à jour (ajouter, modifier, supprimer) les documents de base de données.

Dans CouchDB, les documents sont la principale unité de données et ils incluent également des métadonnées. Les champs de document sont nommés de manière unique et contiennent des valeurs de différents types (texte, nombre, booléen, listes, etc.), et il n'y a pas de limite définie pour la taille du texte ou le nombre d'éléments.

Les mises à jour des documents (ajouter, modifier, supprimer) suivent Atomicity, c'est-à-dire qu'elles seront sauvegardées complètement ou pas du tout enregistrées. La base de données ne contiendra aucun document partiellement enregistré ou modifié.

Structure du document Json

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

Propriétés ACID

CouchDB contient des propriétés ACID comme l'une de ses fonctionnalités.

Cohérence - Lorsque les données de CouchDB ont été validées une fois, ces données ne seront ni modifiées ni écrasées. Ainsi, CouchDB garantit que le fichier de base de données sera toujours dans un état cohérent.

Un modèle MVCC (Multi-Version Concurrency Control) est utilisé par les lectures CouchDB, grâce auquel le client verra un instantané cohérent de la base de données du début à la fin de l'opération de lecture.

Chaque fois qu'un document est mis à jour, CouchDB vide les données dans le disque et l'en-tête de base de données mis à jour est écrit en deux morceaux consécutifs et identiques pour constituer les 4 premiers Ko du fichier, puis vidé de manière synchrone sur le disque. Les mises à jour partielles pendant le rinçage seront supprimées.

Si l'échec s'est produit lors de la validation de l'en-tête, une copie survivante des en-têtes identiques précédents restera, garantissant la cohérence de toutes les données précédemment validées. À l'exception de la zone d'en-tête, des contrôles de cohérence ou des corrections après un crash ou une panne de courant ne sont jamais nécessaires.

Compactage

Chaque fois que l'espace dans le fichier de base de données est gaspillé au-dessus d'une certaine étendue, toutes les données actives seront copiées (clonées) dans un nouveau fichier. Lorsque le processus de copie est entièrement terminé, l'ancien fichier sera supprimé. Tout cela se fait par processus de compactage. La base de données reste en ligne pendant le compactage et toutes les mises à jour et lectures sont autorisées à se terminer avec succès.

Vues

Les données dans CouchDB sont stockées dans des documents semi-structurés flexibles avec des structures implicites individuelles, mais il s'agit d'un modèle de document simple pour le stockage et le partage de données. Si nous voulons voir nos données de différentes manières, nous avons besoin d'un moyen de filtrer, d'organiser et de rendre compte des données qui n'ont pas été décomposées en tableaux.

Pour résoudre ce problème, CouchDB fournit un modèle de vue. Les vues sont la méthode d'agrégation et de rapport sur les documents dans une base de données, et sont construites à la demande pour agréger, joindre et rapporter sur des documents de base de données. Étant donné que les vues sont créées dynamiquement et n'affectent pas le document sous-jacent, vous pouvez avoir autant de représentations de vues différentes des mêmes données que vous le souhaitez.

L'histoire

  • CouchDB a été écrit en langage de programmation Erlang.
  • Il a été lancé par Damien Katz en 2005.
  • CouchDB est devenu un projet Apache en 2008.

La version actuelle de CouchDB est 1.61.

Ce chapitre vous apprend à installer CouchDB sous Windows ainsi que sur les systèmes Linux.

Installer CouchDB sous Windows

Télécharger CouchDB

Le site officiel de CouchDB est https://couchdb.apache.org. Si vous cliquez sur le lien donné, vous pouvez obtenir la page d'accueil du site officiel de CouchDB comme indiqué ci-dessous.

Si vous cliquez sur le bouton de téléchargement, cela mènera à une page où des liens de téléchargement de CouchDB dans différents formats sont fournis. L'instantané suivant illustre la même chose.

Choisissez le lien de téléchargement pour les systèmes Windows et sélectionnez l'un des miroirs fournis pour démarrer votre téléchargement.

Installer CouchDB

CouchDB sera téléchargé sur votre système sous la forme d'un fichier d'installation nommé setup-couchdb-1.6.1_R16B02.exe. Exécutez le fichier d'installation et poursuivez l'installation.

Après l'installation, ouvrez l'interface Web intégrée de CouchDB en visitant le site suivant link: http://127.0.0.1:5984/. Si tout se passe bien, cela vous donnera une page Web, qui aura la sortie suivante.

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

Vous pouvez interagir avec l'interface Web CouchDB en utilisant l'url suivante -

http://127.0.0.1:5984/_utils/

Cela vous montre la page d'index de Futon, qui est l'interface web de CouchDB.

Installation de CouchDB dans les systèmes Linux

Pour de nombreux systèmes à saveur Linux, ils fournissent CouchDB en interne. Pour installer ce CouchDB, suivez les instructions.

Sur Ubuntu et Debian, vous pouvez utiliser -

sudo aptitude install couchdb

Sur Gentoo Linux, un ebuild CouchDB est disponible -

sudo emerge couchdb

Si votre système Linux n'a pas CouchDB, suivez la section suivante pour installer CouchDB et ses dépendances.

Installation des dépendances CouchDB

Voici la liste des dépendances à installer pour obtenir CouchDB dans votre système -

  • Erlang OTP
  • ICU
  • OpenSSL
  • Mozilla SpiderMonkey
  • Marque GNU
  • Collection de compilateurs GNU
  • libcurl
  • help2man
  • Python pour les documents
  • Sphinx de Python

Pour installer ces dépendances, tapez les commandes suivantes dans le terminal. Ici, nous utilisons Centos 6.5 et les commandes suivantes installeront les logiciels requis compatibles avec Centos 6.5.

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

Note −Pour toutes ces commandes, vous devez utiliser sudo. La procédure suivante convertit un utilisateur normal en sudoer.

  • Connectez-vous en tant que root dans l'utilisateur admin

  • Ouvert sudo fichier en utilisant la commande suivante -

visudo
  • Puis modifiez comme indiqué ci-dessous pour donner à votre utilisateur existant les privilèges sudoer -
Hadoop All=(All) All , and press esc : x to write the changes to the file.

Après avoir téléchargé toutes les dépendances de votre système, téléchargez CouchDB en suivant les instructions données.

Téléchargement de CouchDB

La fondation logicielle Apache ne fournira pas le fichier .tar complet pour CouchDB, vous devez donc l'installer à partir de la source.

Créez un nouveau répertoire pour installer CouchDB, accédez à ce répertoire créé et téléchargez la source CouchDB en exécutant les commandes suivantes -

$ 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

Cela téléchargera le fichier source CouchDB dans votre système. Maintenant, décompressez leapache-couchdb-1.6.1.tar.gz comme indiqué ci-dessous.

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

Configurer CouchDB

Pour configurer CouchDB, procédez comme suit -

  • Accédez au dossier d'accueil de CouchDB.
  • Connectez-vous en tant que superutilisateur.
  • Configurez à l'aide de l'invite ./configure comme indiqué ci-dessous -
$ cd apache-couchdb-1.6.1
$ su
Password:
# ./configure --with-erlang=/usr/lib64/erlang/usr/include/

Il vous donne la sortie suivante similaire à celle illustrée ci-dessous avec une ligne de conclusion disant - 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.

Installer CouchDB

Tapez maintenant la commande suivante pour installer CouchDB dans votre système.

# make && sudo make install

Il installe CouchDB dans votre système avec une ligne de conclusion disant - You have installed Apache CouchDB, time to relax.

Démarrer CouchDB

Pour démarrer CouchDB, accédez au dossier d'accueil de CouchDB et utilisez la commande suivante -

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

Il démarre CouchDB en donnant la sortie suivante: -

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

Vérification

Puisque CouchDB est une interface Web, essayez de taper l'url de la page d'accueil suivante dans le navigateur.

http://127.0.0.1:5984/

Il produit la sortie suivante -

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

Utilitaire cURL

L'utilitaire cURL est un moyen de communiquer avec CouchDB.

C'est un outil pour transférer des données depuis ou vers un serveur, en utilisant l'un des protocoles pris en charge (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP ou FILE). La commande est conçue pour fonctionner sans intervention de l'utilisateur. cURL offre une multitude d'astuces utiles telles que la prise en charge du proxy, l'authentification des utilisateurs, le téléchargement ftp, la publication HTTP, les connexions SSL (https :), les cookies, la reprise du transfert de fichiers et plus encore.

L'utilitaire cURL est disponible dans les systèmes d'exploitation tels que UNIX, Linux, Mac OS X et Windows. Il s'agit d'un utilitaire de ligne de commande permettant à l'utilisateur d'accéder au protocole HTTP directement depuis la ligne de commande. Ce chapitre vous apprend à utiliser l'utilitaire cURL.

Utilisation de l'utilitaire cURL

Vous pouvez accéder à n'importe quel site Web à l'aide de l'utilitaire cURL en tapant simplement cURL suivi de l'adresse du site Web comme indiqué ci-dessous -

curl www.tutorialspoint.com/

Par défaut, l'utilitaire cURL renvoie le code source de la page demandée. Il affiche ce code sur la fenêtre du terminal.

Options de l'utilitaire cURL

L'utilitaire cURL fournit diverses options avec lesquelles travailler, et vous pouvez les voir dans l'aide de l'utilitaire cURL.

Le code suivant montre une partie de l'aide 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

Lors de la communication avec CouchDB, certaines options de l'utilitaire cURL ont été largement utilisées. Voici les brèves descriptions de certaines options importantes de l'utilitaire cURL, y compris celles utilisées par CouchDB.

-X drapeau

(HTTP) Spécifie une méthode de demande personnalisée utilisée lors de la communication avec le serveur HTTP. La demande spécifiée est utilisée à la place de la méthode utilisée autrement (qui est par défaut GET). Lisez la spécification HTTP 1.1 pour plus de détails et d'explications.

(FTP) Spécifie une commande FTP personnalisée à utiliser à la place de LIST lors de la création de listes de fichiers avec ftp.

-H

(HTTP) Un en-tête supplémentaire est utilisé lors de l'obtention d'une page Web. Notez que si vous ajoutez un en-tête personnalisé qui porte le même nom que l'un des en-têtes internes que cURL utiliserait, votre en-tête défini en externe sera utilisé à la place de l'en-tête interne. Cela vous permet de faire un travail encore plus délicat que le ferait normalement cURL. Vous ne devez pas remplacer les en-têtes définis en interne sans savoir parfaitement ce que vous faites. Le remplacement d'un en-tête interne par celui sans contenu sur le côté droit des deux points empêchera cet en-tête d'apparaître.

cURL garantit que chaque en-tête que vous ajoutez / remplacez est envoyé avec le marqueur de fin de ligne approprié. Vous ne devez pas non plus ajouter cela dans le cadre du contenu de l'en-tête ni ajouter des retours à la ligne ou des retours chariot pour désordre.

Voir aussi les options -A / - user-agent et -e / - referer.

Cette option peut être utilisée plusieurs fois pour ajouter / remplacer / supprimer plusieurs en-têtes.

-d indicateur

En utilisant cet indicateur de cURL, vous pouvez envoyer des données avec la requête HTTP POST au serveur, comme si elle avait été remplie par l'utilisateur dans le formulaire et soumise.

Example

Supposons qu'il existe un site Web et que vous souhaitiez vous y connecter ou envoyer des données au site Web en utilisant l'indicateur –d de l'utilitaire cURL comme indiqué ci-dessous.

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

Il envoie un morceau de message qui ressemble à "userid=001&password=tutorialspoint". De même, vous pouvez également envoyer des documents (JSON) à l'aide de l'option -d.

-o drapeau

À l'aide de cet indicateur, cURL écrit la sortie de la requête dans un fichier.

Example

L'exemple suivant montre l'utilisation de -o indicateur de l'utilitaire 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

Cela obtient le code source de la page d'accueil de tutorialspoint.com, crée un fichier nommé example.com et enregistre la sortie dans le fichier nommé example.html.

Voici un aperçu de la example.html.

-O

Ce drapeau est similaire à –o, la seule différence est qu'avec cet indicateur, un nouveau fichier portant le même nom que l'url demandée a été créé et le code source de l'url demandée y sera copié.

Example

L'exemple suivant montre l'utilisation de -O indicateur de l'utilitaire 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

Il crée un nouveau fichier avec le nom index.htm et y enregistre le code source de la page d'index de tutorialspoint.com.

Bonjour CouchDB

Vous pouvez accéder à la page d'accueil du CouchDB en envoyant une requête GET à l'instance CouchDB installée. Tout d'abord, assurez-vous que vous avez installé CouchDB dans votre environnement Linux et qu'il fonctionne correctement, puis utilisez la syntaxe suivante pour envoyer une requête get à l'instance CouchDB.

curl http://127.0.0.1:5984/

Cela vous donne un document JSON comme indiqué ci-dessous où CouchDB spécifie les détails tels que le numéro de version, le nom du fournisseur et la version du logiciel.

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

Liste de toutes les bases de données

Vous pouvez obtenir la liste de toutes les bases de données créées, en envoyant une requête get avec la chaîne "_all_dbs string ". Voici la syntaxe pour obtenir la liste de toutes les bases de données dans CouchDB.

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

Il vous donne la liste de toutes les bases de données dans CouchDB comme indiqué ci-dessous.

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

Créer une base de données

Vous pouvez créer une base de données dans CouchDB en utilisant cURL avec l'en-tête PUT en utilisant la syntaxe suivante -

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

Exemple

À titre d'exemple, en utilisant la syntaxe donnée ci-dessus, créez une base de données avec un nom my_database comme indiqué ci-dessous.

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

Vérification

Vérifiez si la base de données est créée en répertoriant toutes les bases de données comme indiqué ci-dessous. Ici, vous pouvez observer le nom de la base de données nouvellement créée,"my_database" dans la liste

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

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

Obtenir des informations sur la base de données

Vous pouvez obtenir les informations sur la base de données en utilisant la requête get avec le nom de la base de données. Voici la syntaxe pour obtenir les informations de la base de données.

Exemple

À titre d'exemple, obtenons les informations de la base de données nommée my_databasecomme indiqué ci-dessous. Ici, vous pouvez obtenir les informations sur votre base de données en guise de réponse.

$ 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 est l'interface d'administration Web intégrée de CouchDB. Il fournit une interface graphique simple à l'aide de laquelle vous pouvez interagir avec CouchDB. C'est une interface naïve et elle offre un accès complet à toutes les fonctionnalités de CouchDB. Voici la liste de ces fonctionnalités -

Databases −
  • Crée des bases de données.
  • Détruit les bases de données.
Documents −
  • Crée des documents.
  • Met à jour les documents.
  • Modifie les documents.
  • Supprime les documents.

Démarrage du futon

Assurez-vous que CouchDB est en cours d'exécution, puis ouvrez l'url suivante dans le navigateur -

http://127.0.0.1:5984/_utils/

Si vous ouvrez cette URL, elle affiche la page d'accueil Futon comme indiqué ci-dessous -

  • Sur le côté gauche de cette page, vous pouvez consulter la liste de toutes les bases de données actuelles de CouchDB. Dans cette illustration, nous avons une base de données nomméemy_database, ainsi que les bases de données définies par le système _replicator et _user.

  • Sur le côté droit, vous pouvez voir ce qui suit -

    • Tools - Dans cette section, vous pouvez trouver Configuration pour configurer CouchDB, Replicator pour effectuer des réplications, et Status pour vérifier l'état de CouchDB et les modifications récentes effectuées sur CouchDB.

    • Documentation - Cette section contient la documentation complète de la version récente de CouchDB.

    • Diagnostics - En dessous, vous pouvez vérifier l'installation de CouchDB.

    • Recent Databases - En dessous, vous pouvez trouver les noms des bases de données récemment ajoutées.

En utilisant les en-têtes de requête HTTP, vous pouvez communiquer avec CouchDB. Grâce à ces demandes, nous pouvons récupérer des données de la base de données, stocker des données dans la base de données sous forme de documents, et nous pouvons afficher et formater les documents stockés dans une base de données.

Formats de requête HTTP

Tout en communiquant avec la base de données, nous utiliserons différents formats de requête tels que get, head, post, put, delete et copy. Pour toutes les opérations dans CouchDB, les données d'entrée et les structures de données de sortie seront sous la forme d'un objet JavaScript Object Notation (JSON).

Voici les différents formats de requête du protocole HTTP utilisés pour communiquer avec CouchDB.

  • GET- Ce format est utilisé pour obtenir un élément spécifique. Pour obtenir différents éléments, vous devez envoyer des modèles d'URL spécifiques. Dans CouchDB en utilisant cette requête GET, nous pouvons obtenir des éléments statiques, des documents de base de données et de configuration, et des informations statistiques sous la forme de documents JSON (dans la plupart des cas).

  • HEAD - La méthode HEAD est utilisée pour obtenir l'en-tête HTTP d'une requête GET sans le corps de la réponse.

  • POST- La demande de publication est utilisée pour télécharger des données. Dans CouchDB à l'aide de la requête POST, vous pouvez définir des valeurs, télécharger des documents, définir des valeurs de document et également démarrer certaines commandes d'administration.

  • PUT - En utilisant la demande PUT, vous pouvez créer de nouveaux objets, bases de données, documents, vues et documents de conception.

  • DELETE - À l'aide de la demande DELETE, vous pouvez supprimer des documents, des vues et des documents de conception.

  • COPY - En utilisant la méthode COPY, vous pouvez copier des documents et des objets.

En-têtes de requête HTTP

Les en-têtes HTTP doivent être fournis pour obtenir le bon format et le bon encodage. Lors de l'envoi de la requête au serveur CouchDB, vous pouvez envoyer des en-têtes de requête Http avec la requête. Voici les différents en-têtes de demande Http.

  • Content-type- Cet en-tête est utilisé pour spécifier le type de contenu des données que nous fournissons au serveur avec la requête. La plupart du temps, le type de contenu que nous envoyons avec la demande sera de type MIME ou JSON (application / json). L'utilisation de Content-type sur une demande est fortement recommandée.

  • Accept- Cet en-tête est utilisé pour spécifier le serveur, la liste des types de données que le client peut comprendre, afin que le serveur envoie sa réponse en utilisant ces types de données. En général, vous pouvez envoyer ici la liste des types de données MIME acceptés par le client, séparés par des deux points.

    Bien que l'utilisation d'Accepter dans les requêtes de CouchDB ne soit pas obligatoire, il est fortement recommandé de s'assurer que les données renvoyées peuvent être traitées par le client.

En-têtes de réponse

Ce sont les en-têtes de la réponse envoyée par le serveur. Ces en-têtes donnent des informations sur le contenu envoyé par le serveur en réponse.

  • Content-type- Cet en-tête spécifie le type MIME des données renvoyées par le serveur. Pour la plupart des demandes, le type MIME renvoyé est text / plain.

  • Cache-control- Cet en-tête suggère au client de traiter les informations envoyées par le serveur. CouchDB renvoie principalement le must-revalidate, ce qui indique que l'information doit être revalidée si possible.

  • Content-length - Cet en-tête renvoie la longueur du contenu envoyé par le serveur, en octets.

  • Etag - Cet en-tête est utilisé pour afficher la révision d'un document ou d'une vue.

Codes d'état

Voici la forme tabulaire du code d'état envoyé par l'en-tête http et sa description.

N ° Sr. Code d'état et description
1

200 − OK

Ce statut sera émis lorsqu'une demande est terminée avec succès.

2

201 − Created

Ce statut sera émis lors de la création d'un document.

3

202 − Accepted

Ce statut sera émis lorsqu'une demande est acceptée.

4

404 − Not Found

Cet état sera émis lorsque le serveur ne pourra pas trouver le contenu demandé.

5

405 − Resource Not Allowed

Cet état est émis lorsque le type de requête HTTP utilisé n'est pas valide.

6

409 − Conflict

Cet état est émis chaque fois qu'il y a un conflit de mise à jour.

sept

415 − Bad Content Type

Cet état indique que le type de contenu demandé n'est pas pris en charge par le serveur.

8

500 − Internal Server Error

Cet état est émis chaque fois que les données envoyées dans la demande sont invalides.

Chemins d'URL HTTP

Il existe certains chemins d'URL à l'aide desquels vous pouvez interagir directement avec la base de données. Voici le format tabulaire de ces chemins d'URL.

N ° Sr. URL et opération
1

PUT /db

Cette URL est utilisée pour créer une nouvelle base de données.

2

GET /db

Cette URL est utilisée pour obtenir les informations sur la base de données existante.

3

PUT /db/document

Cette url est utilisée pour créer un document / mettre à jour un document existant.

4

GET /db/document

Cette url est utilisée pour récupérer le document.

5

DELETE /db/document

Cette URL est utilisée pour supprimer le document spécifié de la base de données spécifiée.

6

GET /db/_design/design-doc

Cette URL est utilisée pour obtenir la définition d'un document de conception.

sept

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

Cette url est utilisée pour accéder à la vue, nom de la vue à partir du document de conception à partir de la base de données spécifiée.

La base de données est la structure de données la plus externe de CouchDB où vos documents sont stockés. Vous pouvez créer ces bases de données en utilisant l'utilitaire cURL fourni par CouchDB, ainsi que Futon l'interface web de CouchDB.

Création d'une base de données à l'aide de l'utilitaire cURL

Vous pouvez créer une base de données dans CouchDB en envoyant une requête HTTP au serveur en utilisant la méthode PUT via l'utilitaire cURL. Voici la syntaxe pour créer une base de données -

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

En utilisant −Xnous pouvons spécifier la méthode de requête personnalisée HTTP à utiliser. Dans ce cas, nous utilisons la méthode PUT. Lorsque nous utilisons l'opération / méthode PUT, le contenu de l'url spécifie le nom de l'objet que nous créons à l'aide de la requête HTTP. Ici, nous devons envoyer le nom de la base de données en utilisant la requête de mise dans l'url pour créer une base de données.

Exemple

Utilisation de la syntaxe ci-dessus si vous souhaitez créer une base de données avec un nom my_database, vous pouvez le créer comme suit

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

En réponse, le serveur vous renverra un document JSON avec du contenu “ok” - true indiquant que l'opération a réussi.

Vérification

Vérifiez si la base de données est créée en répertoriant toutes les bases de données comme indiqué ci-dessous. Ici vous pouvez observer le nom d'une base de données nouvellement créée," my_database " dans la liste.

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

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

Créer une base de données à l'aide de Futon

Pour créer une base de données, ouvrez le http://127.0.0.1:5984/_utils/. Vous obtiendrez une page de présentation / d'index de CouchDB comme indiqué ci-dessous.

Dans cette page, vous pouvez voir la liste des bases de données dans CouchDB, un bouton d'option Créer une base de données sur le côté gauche.

Cliquez maintenant sur le lien de création de base de données. Vous pouvez voir une fenêtre contextuelleCreate New Databasesdemandant le nom de la nouvelle base de données. Choisissez n'importe quel nom en suivant les critères mentionnés. Ici, nous créons une autre base de données avec le nom tutorials_point. Cliquez sur le bouton Créer comme indiqué dans la capture d'écran suivante.

Suppression d'une base de données à l'aide de l'utilitaire cURL

Vous pouvez supprimer une base de données dans CouchDB en envoyant une requête au serveur en utilisant la méthode DELETE via l'utilitaire cURL. Voici la syntaxe pour créer une base de données -

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

En utilisant −Xnous pouvons spécifier une méthode de requête HTTP personnalisée que nous utilisons, tout en communiquant avec le serveur HTTP. Dans ce cas, nous utilisons la méthode DELETE. Envoyez l'url au serveur en spécifiant la base de données à supprimer.

Exemple

Supposons qu'il existe une base de données nommée my_database2 dans CouchDB. En utilisant la syntaxe ci-dessus si vous souhaitez le supprimer, vous pouvez le faire comme suit -

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

En réponse, le serveur vous retournera un document JSON avec du contenu “ok” - true indiquant que l'opération a réussi.

Vérification

Vérifiez si la base de données est supprimée en répertoriant toutes les bases de données comme indiqué ci-dessous. Ici vous pouvez observer le nom de la base de données supprimée,"my_database" n'est pas là dans la liste.

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

[ "_replicator " , " _users " ]

Supprimer une base de données à l'aide de Futon

Pour supprimer une base de données, ouvrez le http://127.0.0.1:5984/_utils/ url où vous obtiendrez une page de présentation / d'index de CouchDB comme indiqué ci-dessous.

Ici, vous pouvez voir trois bases de données créées par l'utilisateur. Supprimons la base de données nommée tutorials_point2. Pour supprimer une base de données, sélectionnez-en une dans la liste des bases de données, et cliquez dessus, ce qui mènera à la page de présentation de la base de données sélectionnée où vous pourrez voir les différentes opérations sur les bases de données. La capture d'écran suivante montre la même chose -

Parmi eux, vous pouvez trouver Delete Databaseoption. En cliquant dessus, vous obtiendrez une fenêtre contextuelle vous demandant si vous êtes sûr! Cliquez sur supprimer pour supprimer la base de données sélectionnée.

Les documents sont la structure de données centrale de CouchDB. Le contenu de la base de données sera stocké sous forme de documents au lieu de tables. Vous pouvez créer ces documents en utilisant l'utilitaire cURL fourni par CouchDB, ainsi que Futon. Ce chapitre couvre les façons de créer un document dans une base de données.

Chaque document dans CouchDB a un identifiant unique. Vous pouvez choisir votre propre identifiant qui doit être sous la forme d'une chaîne. Généralement, UUID (Universally Unique IDentifier) ​​est utilisé, qui sont des nombres aléatoires qui ont le moins de chances de créer un doublon. Ceux-ci sont préférés pour éviter les collisions.

Création d'un document à l'aide de l'utilitaire cURL

Vous pouvez créer un document dans CouchDB en envoyant une requête HTTP au serveur en utilisant la méthode PUT via l'utilitaire cURL. Voici la syntaxe pour créer un document.

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

En utilisant −X, nous pouvons spécifier une méthode de requête HTTP personnalisée que nous utilisons, tout en communiquant avec le serveur HTTP. Dans ce cas, nous utilisons la méthode PUT. Lorsque nous utilisons la méthode PUT, le contenu de l'url spécifie le nom de l'objet que nous créons à l'aide de la requête HTTP. Ici, nous devons envoyer ce qui suit -

  • Le nom du nom de la base de données dans laquelle nous créons le document.

  • L'identifiant du document.

  • Les données du document. −dL'option est utilisée pour envoyer les données / le document via une requête HTTP. Lors de la rédaction d'un document, entrez simplement vos paires Champ-Valeur séparées par deux points, entre crochets de fleurs comme indiqué ci-dessous

{
   Name : Raju
   age : 23
   Designation : Designer
}

Exemple

Utilisation de la syntaxe ci-dessus si vous souhaitez créer un document avec un identifiant 001 dans une base de données avec un nom my_database, vous pouvez le créer comme indiqué ci-dessous.

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

La réponse de CouchDB à cette demande contient trois champs -

  • "ok", indiquant que l'opération a réussi.

  • "id", qui stocke l'identifiant du document et

  • "rev",cela indique l'ID de révision. Chaque fois que vous révisez (mettez à jour ou modifiez) un document_revla valeur sera générée par CouchDB. Si vous souhaitez mettre à jour ou supprimer un document, CouchDB attend que vous incluiez le_revchamp de la révision que vous souhaitez modifier. Lorsque CouchDB accepte le changement, il génère un nouveau numéro de révision. Ce mécanisme assure le contrôle de la concurrence.

Vérification

Si vous souhaitez afficher le document créé, vous pouvez l'obtenir en utilisant le document comme indiqué ci-dessous.

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

Créer un document à l'aide de Futon

Pour créer un document, ouvrez le http://127.0.0.1:5984/_utils/ url pour obtenir une page de présentation / d'index de CouchDB comme indiqué ci-dessous.

Sélectionnez la base de données dans laquelle vous souhaitez créer le document. Ouvrez la page Présentation de la base de données et sélectionnezNew Document option comme indiqué ci-dessous.

Lorsque vous sélectionnez le New Documentoption, CouchDB crée un nouveau document de base de données, en lui attribuant un nouvel identifiant. Vous pouvez modifier la valeur de l'identifiant et attribuer votre propre valeur sous la forme d'une chaîne. Dans l'illustration suivante, nous avons créé un nouveau document avec un id 001.

Dans cette page, vous pouvez observer trois options: enregistrer le document, ajouter un champ et télécharger la pièce jointe.

Ajouter un champ au document

Pour ajouter un champ au document, cliquez sur Add Fieldoption. Après avoir créé une base de données, vous pouvez y ajouter un champ à l'aide de cette option. En cliquant dessus, vous obtiendrez une paire de zones de texte, à savoir,Field, value.Vous pouvez modifier ces valeurs en cliquant dessus. Modifiez ces valeurs et saisissez la paire Champ-Valeur souhaitée. Cliquez sur le bouton vert pour enregistrer ces valeurs.

Dans l'illustration suivante, nous avons créé trois champs Nom, Âge et Désignation de l'employé.

Enregistrer le document

Vous pouvez enregistrer les modifications apportées au document en cliquant sur cette option. Après l'enregistrement, un nouvel identifiant_rev sera généré comme indiqué ci-dessous.

Mettre à jour des documents à l'aide de cURL

Vous pouvez mettre à jour un document dans CouchDB en envoyant une requête HTTP au serveur en utilisant la méthode PUT via l'utilitaire cURL. Voici la syntaxe pour mettre à jour un document.

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

Exemple

Supposons qu'il y ait un document avec l'ID 001 dans la base de données nommé my_database. Vous pouvez le supprimer comme indiqué ci-dessous.

Tout d'abord, obtenez l'ID de révision du document à mettre à jour. Vous pouvez trouver le_rev du document dans le document lui-même, obtenez donc le document comme indiqué ci-dessous.

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

Utilisez l'ID de révision _rev du document pour mettre à jour le document. Ici, nous mettons à jour l'âge de 23 à 24 ans.

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

Vérification

Pour vérifier le document, récupérez-le à nouveau en utilisant la requête GET comme indiqué ci-dessous.

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

Voici quelques points importants à noter lors de la mise à jour d'un document.

  • L'URL que nous envoyons dans la requête contenant le nom de la base de données et l'identifiant du document.

  • La mise à jour d'un document existant est identique à la mise à jour du document entier. Vous ne pouvez pas ajouter un champ à un document existant. Vous ne pouvez écrire qu'une version entièrement nouvelle du document dans la base de données avec le même ID de document.

  • Nous devons fournir le numéro de révision dans le cadre de la demande JSON.

  • En retour, JSON contient le message de réussite, l'ID du document en cours de mise à jour et les nouvelles informations de révision. Si vous souhaitez mettre à jour la nouvelle version du document, vous devez indiquer ce dernier numéro de révision.

Mettre à jour des documents à l'aide de Futon

Pour supprimer un document, ouvrez le http://127.0.0.1:5984/_utils/ url pour obtenir une page de présentation / d'index de CouchDB comme indiqué ci-dessous.

Sélectionnez la base de données dans laquelle se trouve le document à mettre à jour et cliquez dessus. Ici, nous mettons à jour un document dans la base de données nommétutorials_point. Vous obtiendrez la liste des documents de la base de données comme indiqué ci-dessous.

Sélectionnez un document que vous souhaitez mettre à jour et cliquez dessus. Vous obtiendrez le contenu des documents comme indiqué ci-dessous.

Ici, pour mettre à jour l'emplacement de Delhi à Hyderabad, cliquez sur la zone de texte, modifiez le champ et cliquez sur le bouton vert pour enregistrer les modifications comme indiqué ci-dessous.

Suppression d'un document à l'aide de l'utilitaire cURL

Vous pouvez supprimer un document dans CouchDB en envoyant une requête HTTP au serveur à l'aide de la méthode DELETE via l'utilitaire cURL. Voici la syntaxe pour supprimer un document.

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

En utilisant −X,nous pouvons spécifier une méthode de requête HTTP personnalisée que nous utilisons, tout en communiquant avec le serveur HTTP. Dans ce cas, nous utilisons la méthode Delete. Supprimer une base de données /database_name/database_id/ne suffit pas. Vous devez transmettre l'ID de révision récente via l'url. Pour mentionner les attributs de toute structure de données"?" is used.

Example

Suppose there is a document in database named my_database with document id 001. To delete this document, you have to get the rev id of the document. Get the document data as shown below.

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

Spécifiez maintenant l'ID de révision du document à supprimer, l'ID du document et le nom de la base de données auquel appartient le document, comme indiqué ci-dessous -

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

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

Vérification

Pour vérifier si le document est supprimé, essayez de récupérer le document en utilisant le GETméthode. Puisque vous récupérez un document supprimé, cela vous donnera un message d'erreur comme indiqué ci-dessous -

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

Supprimer un document à l'aide de Futon

Tout d'abord, vérifiez les documents de la base de données. Voici un instantané de la base de données nomméetutorials_point.

Ici, vous pouvez observer, la base de données se compose de trois documents. Pour supprimer l'un des documents, dites003, faire ce qui suit -

  • Cliquez sur le document, vous obtiendrez une page montrant le contenu du document sélectionné sous forme de paires champ-valeur.

  • Cette page contient également quatre options à savoir Save Document, Add Field, Upload Attachment, Delete Document.

  • Cliquer sur Delete Document option.

  • Vous obtiendrez une boîte de dialogue disant "Are you sure you want to delete this document?" Cliquez sur supprimer pour supprimer le document.

Joindre des fichiers à l'aide de cURL

Vous pouvez joindre des fichiers à CouchDB comme un e-mail. Le fichier contient des métadonnées comme nom et inclut son type MIME, ainsi que le nombre d'octets que la pièce jointe contient. Pour joindre des fichiers à un document, vous devez envoyer une requête PUT au serveur. Voici la syntaxe pour joindre des fichiers au document -

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

La demande comporte diverses options qui sont expliquées ci-dessous.

  • --data-binary@ - Cette option indique à cURL de lire le contenu d'un fichier dans le corps de la requête HTTP.

  • -H - Cette option permet de mentionner le type de contenu du fichier que nous allons télécharger.

Exemple

Attachons un fichier nommé boy.jpg, au document avec identifiant 001, dans la base de données nommée my_databaseen envoyant une requête PUT à CouchDB. Avant cela, vous devez récupérer les données du document avec l'identifiant001 pour obtenir son courant rev id comme indiqué ci-dessous.

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

Maintenant en utilisant le _rev value, envoyez la requête PUT au serveur CouchDB comme indiqué ci-dessous.

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

Vérification

Pour vérifier si la pièce jointe est téléchargée, récupérez le contenu du document comme indiqué ci-dessous -

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

Joindre des fichiers à l'aide de Futon

Télécharger la pièce jointe

À l'aide de cette option, vous pouvez télécharger une nouvelle pièce jointe, telle qu'un fichier, une image ou un document, dans la base de données. Pour ce faire, cliquez sur leUpload Attachmentbouton. Une boîte de dialogue apparaîtra dans laquelle vous pourrez choisir le fichier à télécharger. Sélectionnez le fichier et cliquez sur leUpload bouton.

Le fichier téléchargé sera affiché dans le champ _attachments. Plus tard, vous pouvez voir le fichier en cliquant dessus.