在couchdb数据库中编写一个Map函数,用于将另一个文档插入到文档中

ufj5ltwl  于 2022-12-09  发布在  CouchDB
关注(0)|答案(1)|浏览(171)

我的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的所有文档,但通过map函数将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能识别过滤器和Map吗?我的替代方案是什么?

fhg3lkii

fhg3lkii1#

你的javascript太现代了(没有=>)。但是我想你误解了map的工作原理--它只会被传递一个文档,所以没有什么可以过滤的。如果你有一个doc1d数组将 * 总是 * 为空。

相关问题