1.7. 本地(非复制)文档¶
本地(非复制)文档接口允许您创建不会复制到其他数据库的本地文档。这些文档可用于保存特定于本地 CouchDB 实例的配置或其他信息。
本地文档具有以下限制
本地文档不会复制到其他数据库。
本地文档不会被视图或 /{db}/_all_docs 视图输出。
从 CouchDB 2.0 开始,可以使用 /db/_local_docs 端点列出本地文档。
当您想要为给定数据库的当前(本地)实例存储配置或其他信息时,可以使用本地文档。
下面列出了可用的方法和 URL 路径
方法 |
路径 |
描述 |
---|---|---|
GET, POST |
/db/_local_docs |
返回数据库中所有非复制文档的列表 |
GET |
/db/_local/id |
返回非复制文档的最新修订版 |
PUT |
/db/_local/id |
插入非复制文档的新版本 |
DELETE |
/db/_local/id |
删除非复制文档 |
COPY |
/db/_local/id |
复制非复制文档 |
1.7.1. /db/_local_docs
¶
- GET /{db}/_local_docs¶
返回给定数据库中所有本地文档的 JSON 结构。信息以包含有关返回结构的元信息的 JSON 结构形式返回,包括所有本地文档的列表和基本内容,包括 ID、修订版和键。键来自本地文档的
_id
。- 参数:
db – 数据库名称
- 请求头:
Accept –
application/json
text/plain
- 查询参数:
conflicts (布尔值) – 在响应中包含 conflicts 信息。如果
include_docs
不是true
,则忽略。默认值为false
。descending (布尔值) – 按键降序返回本地文档。默认值为
false
。endkey (字符串) – 达到指定键时停止返回记录。可选。
end_key (字符串) –
endkey
参数的别名。endkey_docid (字符串) – 达到指定本地文档 ID 时停止返回记录。可选。
end_key_doc_id (字符串) –
endkey_docid
参数的别名。include_docs (布尔值) – 在返回中包含本地文档的完整内容。默认值为
false
。inclusive_end (布尔值) – 指定是否应将指定的结束键包含在结果中。默认值为
true
。key (字符串) – 仅返回与指定键匹配的本地文档。可选。
keys (字符串) – 仅返回与指定键匹配的本地文档。可选。
limit (数字) – 将返回的本地文档数量限制为指定数量。可选。
skip (数字) – 在开始返回结果之前跳过此数量的记录。默认值为
0
。startkey (字符串) – 从指定键开始返回记录。可选。
start_key (字符串) –
startkey
参数的别名。startkey_docid (字符串) – 从指定本地文档 ID 开始返回记录。可选。
start_key_doc_id (字符串) –
startkey_docid
参数的别名。update_seq (布尔值) – 响应包含一个
update_seq
值,指示视图反映的底层数据库的哪个序列 ID。默认值为false
。
- 响应头:
application/json
text/plain; charset=utf-8
- 响应 JSON 对象:
offset (数字) – 本地文档列表开始的偏移量
rows (数组) – 视图行对象的数组。默认情况下,返回的信息仅包含本地文档 ID 和修订版。
total_rows (数字) – 数据库中本地文档的数量。请注意,这不是实际查询中返回的行数。
update_seq (数字) – 数据库的当前更新序列
- 状态码:
200 OK – 请求已成功完成
请求:
GET /db/_local_docs HTTP/1.1 Accept: application/json Host: localhost:5984
响应:
HTTP/1.1 200 OK Cache-Control: must-revalidate Content-Type: application/json Date: Sat, 23 Dec 2017 16:22:56 GMT Server: CouchDB (Erlang/OTP) Transfer-Encoding: chunked { "offset": null, "rows": [ { "id": "_local/localdoc01", "key": "_local/localdoc01", "value": { "rev": "0-1" } }, { "id": "_local/localdoc02", "key": "_local/localdoc02", "value": { "rev": "0-1" } }, { "id": "_local/localdoc03", "key": "_local/localdoc03", "value": { "rev": "0-1" } }, { "id": "_local/localdoc04", "key": "_local/localdoc04", "value": { "rev": "0-1" } }, { "id": "_local/localdoc05", "key": "_local/localdoc05", "value": { "rev": "0-1" } } ], "total_rows": null }
- POST /{db}/_local_docs¶
POST _local_docs 功能支持与
GET /{db}/_local_docs
API 中指定的参数和行为相同的参数和行为,但允许将查询字符串参数作为 JSON 对象中的键提供在 POST 请求的主体中。请求:
POST /db/_local_docs HTTP/1.1 Accept: application/json Content-Length: 70 Content-Type: application/json Host: localhost:5984 { "keys" : [ "_local/localdoc02", "_local/localdoc05" ] }
返回的 JSON 是所有文档结构,但输出中只有选定的键
{ "total_rows" : null, "rows" : [ { "value" : { "rev" : "0-1" }, "id" : "_local/localdoc02", "key" : "_local/localdoc02" }, { "value" : { "rev" : "0-1" }, "id" : "_local/localdoc05", "key" : "_local/localdoc05" } ], "offset" : null }
1.7.2. /db/_local/id
¶
- GET /{db}/_local/{docid}¶
获取指定的本地文档。语义与访问指定数据库中的标准文档相同,只是该文档不会被复制。请参阅
GET /{db}/{docid}
.
- PUT /{db}/_local/{docid}¶
存储指定的本地文档。语义与在指定数据库中存储标准文档相同,只是该文档不会被复制。请参阅
PUT /{db}/{docid}
.
- DELETE /{db}/_local/{docid}¶
删除指定的本地文档。语义与删除指定数据库中的标准文档相同,只是该文档不会被复制。请参阅
DELETE /{db}/{docid}
.
- COPY /{db}/_local/{docid}¶
复制指定的本地文档。语义与复制指定数据库中的标准文档相同,只是该文档不会被复制。请参阅
COPY /{db}/{docid}
.