查找并返回特定字段

时间:2012-11-11 05:32:38

标签: node.js couchdb couchdb-nano

我在NodeJS中使用couchDB的nano包装器时遇到了一些麻烦:

https://github.com/dscape/nano

我的问题是,如何查找并返回电子邮件与“foobar@baz.com”匹配的所有用户?如果我只想返回名称字段怎么办?

我对观点和设计名/观点名称的概念感到困惑,如果有人能给我看一个示例电话,那就太棒了。

谢谢,

var nano = require('nano')('http://localhost:5984');
nano.db.create('users');
var users = nano.db.use('users');

user.views()//what parameters go in here?

/*example user object
user = {
  'id' : '123',
  'email' : 'foobar@baz.com'
  'name':'John Doe'
}
*/

1 个答案:

答案 0 :(得分:2)

在使用nano访问之前,您似乎需要在couchdb中创建视图。视图作为map(以及可选)减少函数附加到设计文档中。

有关详细信息,请参阅此处:http://wiki.apache.org/couchdb/HTTP_view_API和此:http://guide.couchdb.org/editions/1/en/views.html

您的用户数据库的设计文档可能如下所示:

{
  "_id":"_design/usersddoc",
  "_rev":"12345",
  "language": "javascript",
  "views":
  {
    "byEmail": {
      "map": "function(doc) { if (doc.email)  emit(null, doc.name) }"
    }
  }
}

在使用库之前理解CouchDB如何工作的基础知识非常重要,否则您将会遇到各种困惑。 CouchDB有一个相当简单的RESTful JSON接口,我建议阅读权威指南并浏览Wiki以了解它是如何工作的。