Couchdb 简明教程

CouchDB - Creating a Document

文档是 CouchDB 的中心数据结构。数据库的内容将以文档形式而不是表的形式存储。您可以使用 CouchDB 和 Futon 提供的 cURL 实用程序来创建这些文档。本章涵盖在数据库中创建文档的方法。

CouchDB 中的每个文档都有一个唯一的 ID。您可以选择您自己的 ID,它应该是字符串形式。通常使用 UUID(通用唯一标识符),它们是随机数,产生重复的可能性最小。首选这些以避免冲突。

Creating a Document using cURL Utility

您可以使用 PUT 方法向服务器发送 HTTP 请求,通过 cURL 实用程序在 CouchDB 中创建一个文档。以下是在 CouchDB 中创建文档的语法:

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

使用 −X ,我们可以指定在与 HTTP 服务器通信时使用的 HTTP 自定义请求方法。在此情况下,我们使用 PUT 方法。当我们使用 PUT 方法时,url 的内容指定我们使用 HTTP 请求创建的对象名称。此处我们必须发送以下内容:

  1. 为我们创建文档所需数据库的名称。

  2. The document id.

  3. 文档的数据。 −d 选项用于通过 HTTP 请求发送数据/文档。当编写文档时,只需在花括号中输入用冒号分隔的字段-值对,如下所示 −

{
   Name : Raju
   age : 23
   Designation : Designer
}

Example

使用上述给出的语法,如果你想在名称为 my_database 的数据库中使用 id 001 创建文档,那么你可以按照如下所示进行创建。

$ 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 对此请求的响应包含三个字段 −

  1. "ok", 表明操作成功。

  2. "id", 存储文档的 id 及

  3. "rev", 这表明修订 id。每次修订(更新或修改)一个文档时,CouchDB 将生成一个 _rev 值。如果你想更新或删除一个文档,CouchDB 希望你包含你希望修改的修订的 _rev 字段。当 CouchDB 接受该更改时,它将生成一个新的修订号。此机制确保并发控制。

Verification

如果你想查看创建的文档,可以使用文档按如下所示获取。

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

Creating a Document using Futon

要创建文档,请打开 http://127.0.0.1:5984/_utils/ url 以获取 CouchDB 的概述/索引页面,如下所示。

create document

选择你要在其中创建文档的数据库。打开数据库的概述页面,然后选择 New Document 选项,如下所示。

new document

当你选择 New Document 选项时,CouchDB 创建一个新的数据库文档,分配给它一个新的 id。你可以编辑 id 的值,并且可以以字符串的形式分配你自己的值。在下面的插图中,我们使用 id 001 创建了一个新文档。

new document id

在此页面,你可以观察到三个选项 − 保存文档、添加字段和上传附件。

Add Field to the Document

要向文档中添加字段,请单击 Add Field 选项。在创建数据库之后,你可以使用此选项向其中添加字段。单击它将获得一对文本框,即 Field, value. 你可以单击它们来编辑这些值。编辑这些值并输入你想要的字段-值对。单击绿色按钮保存这些值。

在下面的插图中,我们创建了员工的三个字段姓名、年龄和职务。

create field

Save Document

你可以单击此选项保存对文档所做的更改。保存后,将生成一个新的 id _rev ,如下所示。

save document