在couchdb视图中组合多个文档

时间:2014-06-17 13:17:20

标签: couchdb

在couchdb中,我需要用以下格式表示一些数据,一个引用数组内其他文档的外部容器。

我希望将这些文档分开,因为我需要单独管理它们上的冲突。

{
  "_id" : "1"'
  "type" : "container",
  "items" : [ "1", "2", "3"]
}


{
   "_id" : "2",
   "value": "a"
    "type" : "item"
}


{
   "_id" : "3",
   "value": "b"
   "type" : "item"
 }


 {
   "_id" : "4",
   "value": "c"
    "type" : "item"
 }    

我想以下列格式输出数据视图。

{
  "_id" : "1"'
  "type" : "container",
  "items" : [
     {
       "_id" : "2",
       "value": "a"
       "type" : "item"
     },
     {
       "_id" : "3",
       "value": "b"
       "type" : "item"
     },
     {
       "_id" : "4",
       "value": "c"
       "type" : "item"
     }
   ]

}

最好的办法是什么?

1 个答案:

答案 0 :(得分:8)

您可以使用couchdb linked documents

实现此目的

这是视图的样子

  function(doc){
    if(doc.items)
    doc.items.forEach(function(item){
          emit(doc._id,{_id:item});
      })
 }

现在您可以使用include_docs=true参数查询视图,并且您应该获得所需的结果。