在couchdb视图中组合多个文档

Ala*_*ley 4 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"
 }    
Run Code Online (Sandbox Code Playgroud)

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

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

}
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法来解决这个问题?

Aks*_*rma 8

您可以使用couchdb链接文档来实现此目的

这是视图的样子

  function(doc){
    if(doc.items)
    doc.items.forEach(function(item){
          emit(doc._id,{_id:item});
      })
 }
Run Code Online (Sandbox Code Playgroud)

现在您可以使用include_docs=true参数查询视图,您应该具有所需的结果.

  • 谢谢,我已经使用list函数以所需的格式重写文档. (2认同)