我跟随IBM's tutorial on CouchDB并遇到查看我的文档的问题。当我访问http://127.0.0.1:5984/_utils/database.html?contacts/_design/contacts/_view/byname#时,我可以在视图中看到我的文档。
但是,当我访问http://127.0.0.1:5984/contacts/_design/contacts/_view/byname(然后尝试通过db.view("contacts/byname", {...
在我的应用中查看相同的数据时),我只看到null
个结果作为我的键/值对。
我不认为这是一个安全问题;我能否在 _utils 中查看我是否登录的视图。
修改
以下是我的观点的源代码:
function(doc) {
if (doc.name) {
emit(doc.name, doc);
}
}
为什么我可以在一个地方看到它但不能在另一个地方看到它?
答案 0 :(得分:2)
也许你有一个丢弃文件内容的reduce函数,或者减少为null?我从你的截图中看到你没有点击“Reduce”复选框,因此你看到的只是地图函数的结果。
答案 1 :(得分:2)
正如Antonios所说,命令
couchapp generate view contacts byname
创建了一个文件views/byname/reduce.js
,其中包含一个空的reduce函数。您应该删除它或使用?reduce=false
查询(Futon默认添加它。)
作为旁注:在使用Futon时,您可以使用Firebug查看正在进行的查询。