2

我在 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'
}
*/
4

1 回答 1

3

看起来您需要在使用 nano 访问之前在 couchdb 中创建视图。视图作为 map(和可选的)reduce 函数附加到设计文档。

有关更多信息,请参阅此: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 以很好地了解它是如何工作的。

于 2012-11-11T05:59:38.727 回答