如何按数组搜索

时间:2015-04-23 07:55:08

标签: node.js couchdb couchdb-nano

我有一些文件格式如下:

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

我需要做的是通过提供包含我需要选择的网址的数组来选择具有特定网址的文档:

['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做什么?如果没有,那么在不失性能的情况下,我能得到的最接近的东西是什么?提前谢谢!

1 个答案:

答案 0 :(得分:4)

您需要使用keys而不是CouchDB API Reference中记录的key

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