具有数组

时间:2018-05-11 23:37:24

标签: couchdb cloudant

我在CouchDB / Cloudant中有三个文档如下:

all_docs :[{
    _id: "content1"
    files: ["fileA", "fileB", "fileC"]
}, {
    _id: "content2"
    files: ["fileD", "fileE", "fileC"]
}, {
    _id: "content3"
    files: ["fileF", "fileG", "fileH"]
}

我需要获取content1和content2作为FileC的结果,我可以将FileC作为密钥传递。

有没有办法编写一个返回doc ids(content1和content2)的视图,其中文件是FileC?

1 个答案:

答案 0 :(得分:4)

这只需要一个标准的,直截了当的视图。

作为documented

  

请注意,单个文档可能会多次调用emit(),因此几个不同的密钥可能会提供相同的文档。

因此,您只需要为文档中的每个文件调用emit()即可。像这样:

function (doc) {
  for (i = 0; i < doc.files.length; i++) {
    emit(doc.files[0])
  }
}