我在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'
}
*/
答案 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以了解它是如何工作的。