在 Cloudant(使用 node.js 模块)数据库中查询文档列表?

Query Cloudant (using the node.js module) database for a list of documents?

考虑一个包含如下文档的数据库:

{ 
   username: "user_1",
   email: "user_1@mail.com"
}

现在,我得到了一个用户名列表,即:

["user_1", "user_2", "user_N"]

我 return 他们的电子邮件列表:

["user_1@mail.com","user_2@mail.com","user_N@mail.com"]

如何有效解决这个问题?

使用 Node.js 查询 Cloudant(基于 nano 库)数据库。

您可以在数据库上创建一个将用户名映射到电子邮件的视图,然后 运行 db.view 使用键作为参数 return 您的结果。

或者,您也可以使用 Cloudant 的节点库来检索具有 Cloudant Query or Cloudant Search 的文档。

视图可能是您所需要的全部,但如果您需要根据每个文档中的不同属性组合进行查询,使用 Cloudant 搜索的搜索索引可能是最佳选择。我不确定 Cloudant 查询提供了哪些好处。

您不需要新视图,请参阅 HTTP Bulk Document 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;
  })
})