我在长沙发数据库中有此文档,我希望编写一个视图,该视图可以发出原始“ _id”和“ Body”中id的键组合,并将其值作为主体本身。
基本上,如果“ doc”是json:
键[_id,“体内的键”]
value [doc ['_ id'] ['Body'] [Body inbody]
答案 0 :(得分:0)
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.Body.abc
获取doc._id = "123"
的正文,
http://my.couch.host/my-db/_design/docname/_view/viewname?startkey=["123","abc"]&endkey=["123","abc"]
有关更多信息,请参见views collation和complex keys。