0

我正在使用 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 数据看起来很合理:

{"rows":[
{"key":["template","completed"],"value":2}, {"key":["template","running"],"value":2}, {"key":["template","waiting"],"value":6}
]}

但是没有进入成功函数。为什么我会看到这种行为的任何想法,我确实想知道这是否是 jquery.couch.js 中的错误(我有 couchdb 1.1.0)。

干杯。

4

1 回答 1

2

我自己在使用 list 函数时遇到了一些麻烦,直到我查看了 jquery.couch.js 的源代码(我在http://bradley-holt.com/2011/07/找到的在线文档couchdb-jquery-plugin-reference/似乎已过时)。

基本上, 和 的参数viewlist不同的,列表有一个额外的选项参数,而不是将所有内容都放在与视图相同的参数下。

看法:

$.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) {

    }
});
于 2012-09-10T16:08:02.613 回答