1

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

{ 
   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 库)数据库。

4

2 回答 2

3

您不需要新视图,请参阅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;
  })
})
于 2016-01-04T11:21:25.117 回答
1

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

或者,您还可以使用 Cloudant 的节点库通过Cloudant QueryCloudant Search检索文档。

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

于 2016-01-02T12:48:48.880 回答