如何按数组搜索

How to search by array

我有一些文件格式如下:

{
 url: 'some-unique-url',
 name: 'some-name'
}

我需要做的是 select 具有特定 url 的文档,方法是提供一个包含我需要 select 的 url 的数组]:

['some-unique-url', 'another-url']

这是我当前的视图:

function(doc) {
  if(doc.type == 'message'){
    emit([doc.url], null);
  }
}

这是我的 node.js 代码。我正在使用 nano.

db.view('message', 'by_url', {'key': urls}, function(err, body){
    res.send(body);
});

如果我在数组中只有一个项目,这会起作用,但一旦我添加另一个项目,这就是我得到的:

{"total_rows":18,"offset":11,"rows":[]}

我也试过 startkeyendkey 也可以,但它的作用与前一个相同:

db.view('message', 'by_url', {'startkey': online_users_ids, 'endkey': [online_users_ids, {}]}, function(err, body){
    res.send(body);
});

我尝试用 couchdb 和 nano 做的事情可行吗?如果不是,在不损失性能的情况下我能得到的最接近的东西是什么?提前致谢!

您需要使用 keys 而不是 key,如 CouchDB API Reference 中所述。

db.view('message', 'by_url', {'keys': urls}, function(err, body){
    res.send(body);
});