Javascript 具有数组的CouchDB多键视图

Javascript 具有数组的CouchDB多键视图,javascript,couchdb,pouchdb,couchdb-2.0,Javascript,Couchdb,Pouchdb,Couchdb 2.0,好的,我的问题是我有一个多键视图,这是可行的 function (docu) { if(!docu.deleted){ emit([docu.key1, docu.key2, docu.key3], docu); } } 我正在尝试将另一个密钥添加到此已存在的多密钥数组。我试图添加的键是一个字符串值数组 [ "test", "test2" ] 我正在使用pookdb及其内置查询方法查询我的视图,代码如下 database.query("views/viewTest", {

好的,我的问题是我有一个多键视图,这是可行的

function (docu) {
  if(!docu.deleted){
    emit([docu.key1, docu.key2, docu.key3], docu);
  }
}
我正在尝试将另一个密钥添加到此已存在的多密钥数组。我试图添加的键是一个字符串值数组

[
"test",
"test2"
]
我正在使用
pookdb
及其内置查询方法查询我的视图,代码如下

database.query("views/viewTest", {
    startkey: [key1, key2, key3, key4],
    endkey: [key1, key2, key3, key4],
    reduce: false
}, function (err, res) {
    if (err) {
        console.log(err);
        alert(err);
    } else {
        console.log(res);
    }
});
其中
key4
是我的新数组。通过将map函数更改为
emit([docu.key1,docu.key2,docu.key3,[docu.key4]],docu),我的map函数有点运气
但这仅在数组中只有一个项时有效,并且我需要它对数组中的多个项起作用

我不知道如何设置视图或查询以利用我的
key4
数组中的多个项

我曾尝试使用
startkey
endkey
进行查询,其中
key4
endkey
插入了一个
{}
,但这返回了所有内容。我只希望在
key4
数组中返回值,只要它们也与其他键匹配

总而言之:

  • 在添加新的key4数组之前,我的视图/查询工作正常
  • 如果key4数组中有一个项,则视图/查询可以工作
  • 我需要它来处理key4数组中的所有项
  • 我尝试了多种方法,但都无法实现

有什么建议吗?

为什么不使用一个将key4与[key1,key2,key3]关联的唯一数组

function (docu) {
  if(!docu.deleted){
    var key = [docu.key1, docu.key2, docu.key3].concat(doc.key4);
    emit(key, docu);
  }
}

他们的问题是,文档中的
key4
始终是一个项目,一个
字符串
,而当我在
开始/结束键
中搜索时,它将是一个
字符串
数组。因此,我需要一种方法使
映射能够获取输入并测试文档中的
key4
是否位于
start/endkey
key4中,并发出这些信息。