我的CouchDB数据库中有两种类型的文档(doc.doc_type == doc1和doc.doc_type == doc2)
doc1的结构如下:
{
_id: 123123,
_rev:1251231,
doc_type: doc1,
uid: 1
}
doc 2的结构如下:
{
_id: 123123,
_rev:1251231,
doc_type: doc2,
uid: 1
docid: 1
}
我想编写一个视图,在其中整理doc_type为doc1的所有文档,但通过地图功能将doc2作为数组插入doc1中。
我已经编写了这样的map函数,但是它似乎不起作用:
function(doc) {
var d = []
if (doc.doc_type == "doc2") {
d.push(doc)
}
if (doc.doc_type == "doc1") {
var d1 = d.filter(d => {d.uid == doc.uid})
doc['doc2'] = d1
}
emit(doc._id, doc)
}
但这会引发错误。 CouchDB是否可以识别过滤器和映射?我在这里有什么选择?
答案 0 :(得分:1)
您的JavaScript太过现代(没有=>
)。但是我认为您会误解地图的工作方式-只会将其传递给单个文档,因此您无需进行过滤。如果您有doc1
,则d
数组将始终为空。