编写沙发床的视图

时间:2019-02-26 10:48:03

标签: couchdb

我在长沙发数据库中有此文档,我希望编写一个视图,该视图可以发出原始“ _id”和“ Body”中id的键组合,并将其值作为主体本身。

基本上,如果“ doc”是json:

键[_id,“体内的键”]

value [doc ['_ id'] ['Body'] [Body inbody]

json Document

1 个答案:

答案 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 collationcomplex keys