我正在使用jquery.couchdb.js来查询我的CouchDB数据库。我要查询的视图中包含map和reduce函数。发送基本查询时如下所示:
$(document).ready(function() {
view_name = db_name+'/jobs_by_mod_stat'
options = {'group': 'true' , 'reduce': 'true' };
mod_stat = {};
$db.view(view_name , {
success: function(data) {
console.log(data)
for (i in data.rows) {
console.log(data.rows[i].value);
}
},
error: function(e) {
alert('Error loading from database: ' + e);
}
});
});
我看到数据的合理日志,表明查询已成功。但是,更改行:
$db.view(view_name , {
要
$db.view(view_name , options, {
我没有从Ajax查询中获得成功结果,但也未显示错误消息。 Firebug显示正在发送的查询,返回的JSON数据看起来很合理:
{ “行”:[
{ “键”:[ “模板”, “完成”], “值”:2}, { “键”:[ “模板”, “运行”], “值”:2}, { “键”:[ “模板”, “等待”], “值”:6}
]}
但未输入成功功能。任何想法为什么我看到这种行为,我确实想知道它是否是jquery.couch.js中的一个错误(我有couchdb 1.1.0)。
干杯。
答案 0 :(得分:2)
我自己在使用list函数时遇到了一些麻烦,直到我查看了jquery.couch.js的源代码(我在http://bradley-holt.com/2011/07/couchdb-jquery-plugin-reference/找到的在线文档似乎已经过时了)。
基本上,view
和list
的参数不同,列表为选项提供了额外的参数,而不是将所有内容都放在与视图相同的参数下。
查看:
$.couch.db('yourdb').view('couchapp/' + viewName, {
keys: ['keys here'],
success: function (data) {
}
});
列表:
$.couch.db('yourdb').list('couchapp/' + listName, viewName, {
keys: ['keys here']
}, {
success: function (data) {
}
});