8
我们有一个XML数据库的CouchDB表示,我们用它来为基于JavaScript的前端操作XML文档。基本结构是一个简单的3级层次结构。即如何在couchDB视图中引用其他文档(加入类似功能)
A - >乙 - “ç
答:父文档(A型) B:任意数量的父的子文档的A型 C:任意数量的父类型B的子文档的
我们在CouchDB中使用type
属性表示这3种文档类型:
eg
{
"_id":"llgc-id:433",
"_rev":"1-3760f3e01d7752a7508b047e0d094301",
"type":"A",
"label":"Top Level A document",
"logicalMap":{
"issues":{
"1":{
"URL":"http://hdl.handle.net/10107/434-0",
"FILE":"llgc-id:434"
},
"2":{
"URL":"http://hdl.handle.net/10107/467-0",
"FILE":"llgc-id:467"
etc...
}
}
}
}
{
"_id":"llgc-id:433",
"_rev":"1-3760f3e01d7752a7508b047e0d094301",
"type":"B",
"label":"a B document",
}
我想要做的是产生它返回文档就像A型,但包括从B文档logicalMap列表中的标签属性,例如一个视图
{
"_id":"llgc-id:433",
"_rev":"1-3760f3e01d7752a7508b047e0d094301",
"type":"A",
"label":"Top Level A document",
"logicalMap":{
"issues":{
"1":{
"URL":"http://hdl.handle.net/10107/434-0",
"FILE":"llgc-id:434",
"LABEL":"a B document"
},
"2":{
"URL":"http://hdl.handle.net/10107/467-0",
"FILE":"llgc-id:467",
"LABEL":"another B document"
etc...
}
}
}
}
我正在努力让自己的头脑最好的方式来执行此操作。它看起来应该相当简单!
查询此发出的每个问题,在一个单独的结果虽然不是吗我希望建立一个单一的文件发出 – Surfrdan
你也可以'发射(doc._id,{_ id:doc.logicalMap.issues [i] ['FILE']});'然后将结果合并到'减少“功能,但是,您应该尽量减少结果尽可能以数字表示,所以我宁愿将该代码移到客户端。 –
而不是将结果合并到reduce函数中,您可以尝试改为使用list函数。 –