0

好的,所以我的问题是我有一个多键视图,它有效。

function (docu) {
  if(!docu.deleted){
    emit([docu.key1, docu.key2, docu.key3], docu);
  }
}

我正在尝试向这个已经多键的数组添加另一个键。我试图添加的键是一个字符串值数组,

[
"test",
"test2"
]

我正在使用PouchDB它的内置查询方法查询我的视图,代码如下。

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);但这仅在数组中只有一个项目时才有效,并且我需要它为数组中的多个项目工作。

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

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

所以总结一下:

  • 在我添加新的 key4 数组之前,我的视图/查询有效。
  • 如果 key4 数组中有一项,则视图/查询有效。
  • 我需要它适用于 key4 数组中的所有项目。
  • 我已经尝试了多种方法,并且可以/无法使其正常工作。

有什么建议么?

4

1 回答 1

0

为什么不使用将 key4 连接到 [key1, key2, key3] 的唯一数组?

function (docu) {
  if(!docu.deleted){
    var key = [docu.key1, docu.key2, docu.key3].concat(doc.key4);
    emit(key, docu);
  }
}
于 2017-02-17T08:25:30.873 回答