/{db}/_all_docs 响应中的 id 和 key 字段有什么区别?
What is the difference between id and key fields in /{db}/_all_docs response?
/{db}/_all_docs
响应似乎具有相同的 id
和 key
值。两者有什么区别? key
字段未在任何地方记录。
乍一看 id
和 key
似乎是多余的,但考虑到 _all_docs
就有意义了。来自文档:
Executes the built-in _all_docs view*, returning all of the documents
in the database. With the exception of the URL parameters (described
below), this endpoint works identically to any other view. Refer to
the view endpoint documentation for a complete description of the
available query parameters and the format of the returned data.
* 强调我的
所以_all_docs
是一个内置的视图。考虑 view documentation。将视图视为由三个字段组成会很有帮助
- id
- 关键
- 价值
用户设计的视图通常形成为 id = document._id
emit()
函数生成的键和值(通过 map
函数)。
比如下面的map函数
function (doc) {
emit(doc.someField, doc.someValue);
}
生成视图id=doc._id,key=doc.someField,value=doc.someValue.
/{db}/_all_docs
响应似乎具有相同的 id
和 key
值。两者有什么区别? key
字段未在任何地方记录。
乍一看 id
和 key
似乎是多余的,但考虑到 _all_docs
就有意义了。来自文档:
Executes the built-in _all_docs view*, returning all of the documents in the database. With the exception of the URL parameters (described below), this endpoint works identically to any other view. Refer to the view endpoint documentation for a complete description of the available query parameters and the format of the returned data.
* 强调我的
所以_all_docs
是一个内置的视图。考虑 view documentation。将视图视为由三个字段组成会很有帮助
- id
- 关键
- 价值
用户设计的视图通常形成为 id = document._id
emit()
函数生成的键和值(通过 map
函数)。
比如下面的map函数
function (doc) {
emit(doc.someField, doc.someValue);
}
生成视图id=doc._id,key=doc.someField,value=doc.someValue.