考虑一个包含如下文档的数据库:
{
username: "user_1",
email: "user_1@mail.com"
}
现在,我得到了一个用户名列表,即:
["user_1", "user_2", "user_N"]
我返回了他们的电子邮件列表:
["user_1@mail.com","user_2@mail.com","user_N@mail.com"]
如何有效地解决此问题?
使用Node.js查询Cloudant(基于nano库)数据库。
您不需要新的视图,请参阅HTTP批量文档API
Nano提供db.fetch方法,因此
db.fetch({keys: ["user_1", "user_2", "user_N"]}, function(err, body) {
var emails = body.rows.map(function(row) {
return row.doc.email;
})
})
您可以在数据库上创建一个将用户名映射到电子邮件的视图,然后使用键作为参数运行db.view以返回结果。
或者,您也可以使用Cloudant的节点库来通过Cloudant Query或Cloudant Search检索文档。
视图可能是您所需要的全部,但如果您需要根据每个文档中不同的属性组合进行查询,那么使用Cloudant搜索的搜索索引可能是一种方法。我不确定Cloudant查询提供了什么好处。