【发布时间】:2019-07-19 21:23:30
【问题描述】:
我在 couchdb 中有这个文档,我希望编写一个视图,它可以发出原始“_id”和“Body”中的 id 的组合键,其值为 body 本身。
基本上如果“doc”是json:
key [ _id, "key in Body" ]
值 [ doc['_id']['Body'][key in Body]
【问题讨论】:
-
你试过什么?你有什么问题?
标签: couchdb
我在 couchdb 中有这个文档,我希望编写一个视图,它可以发出原始“_id”和“Body”中的 id 的组合键,其值为 body 本身。
基本上如果“doc”是json:
key [ _id, "key in Body" ]
值 [ doc['_id']['Body'][key in Body]
【问题讨论】:
标签: couchdb
CouchDB 有详细的guide to views。
视图映射函数可以为每个文档发出多个键值对,因此在您的情况下,您将发出每个 doc.Body 条目。
function(doc) {
if (doc.Body) {
// get an array of own property names in doc.Body
var bodies = Object.keys(doc.Body);
// loop over all the Body entries
bodies.forEach(function (body) {
// emit key-value for each entry
emit([doc._id, body], bodies[body].body);
});
}
}
从doc._id = "123"获取所有尸体:
http://my.couch.host/my-db/_design/docname/_view/viewname?startkey=["123"]&endkey=["123",{}]
从doc._id = "123"获取doc.Body.abc的正文:
http://my.couch.host/my-db/_design/docname/_view/viewname?startkey=["123","abc"]&endkey=["123","abc"]
请参阅views collation 和complex keys 了解更多信息。
【讨论】: