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

响应头:
  • Content-Type

    • 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}.