【问题标题】:Find and return specific fields查找并返回特定字段
【发布时间】:2019-05-23 18:53:01
【问题描述】:

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

【问题讨论】:

    标签: node.js couchdb couchdb-nano


    【解决方案1】:

    看起来您需要先在 couchdb 中创建视图,然后才能使用 nano 访问它。视图作为 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 以了解其工作原理。

    【讨论】:

    • 是的,我回去仔细阅读了。我必须访问管理控制台并手动创建一个设计文档,这与传统的 MongoDB 样式查询非常不同。
    • 我同意 CouchDB 与 MongoDB 非常不同,并且 Futon(位于 localhost:5984/_utils 的 CouchDB 管理界面)并没有真正支持修改设计文档。我通常为此目的使用 CouchApp,因为这样维护起来更容易:couchapp.org/page/index
    • Kanso 是 CouchApp (kan.so) 的替代品,如果您在网上挖掘,实际上还有其他一些。
    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2015-06-11
    相关资源
    最近更新 更多