为 couchdb 编写视图

Writing view for couchdb

我在 couchdb 中有这个文档,我希望编写一个视图,它可以发出原始“_id”和 "Body" 中的 id 的键组合,并将值作为正文本身。

基本上如果 "doc" 是 json:

键[_id,"key in Body"]

值 [ doc['_id']['Body'][正文中的键]

json Document

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 and complex keys