Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在couchdb视图中使用带有复合键的reduce不会在GET时返回任何结果_Couchdb_Couchdb Futon - Fatal编程技术网

在couchdb视图中使用带有复合键的reduce不会在GET时返回任何结果

在couchdb视图中使用带有复合键的reduce不会在GET时返回任何结果,couchdb,couchdb-futon,Couchdb,Couchdb Futon,我有一个具有以下映射功能的couchdb视图: function(doc) { if (doc.date_of_operation) { date_triple = doc.date_of_operation.split("/"); d = new Date(date_triple[2], date_triple[1]-1, date_triple[0], 0, 0, 0, 0) emit([d, doc.name], 1); } } function (key

我有一个具有以下映射功能的couchdb视图:

function(doc) {
  if (doc.date_of_operation) {
    date_triple = doc.date_of_operation.split("/");
    d = new Date(date_triple[2], date_triple[1]-1, date_triple[0], 0, 0, 0, 0)
    emit([d, doc.name], 1);
  }
}
function (key, values, rereduce) {
  return sum(values);
}
当我对此发出GET请求时,我将获得整个视图的数据(2.8MB):

但是,当我添加reduce函数时:

function(doc) {
  if (doc.date_of_operation) {
    date_triple = doc.date_of_operation.split("/");
    d = new Date(date_triple[2], date_triple[1]-1, date_triple[0], 0, 0, 0, 0)
    emit([d, doc.name], 1);
  }
}
function (key, values, rereduce) {
  return sum(values);
}
使用curl时,我不再获得任何数据:

$ curl -X GET http://somehost:5984/ops-db/_design/ops-views/_view/counts

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    42    0    42    0     0   7069      0 --:--:-- --:--:-- --:--:--  8400
结果如下所示:

{"rows":[
{"key":null,"value":27065}
]}
{
   "_id": "_design/foo",
   "_rev": "2-6145338c3e47cf0f311367a29787757c",
   "language": "javascript",
   "views": {
       "test1": {
           "map": "function(doc) {\n  emit(null, 1);\n}",
           "reduce": "_sum"
       }
   }
}

这个view&map&reduce函数是使用Futon界面添加的,当在那里选中reduce复选框时,我会为每个“date,name”对获取一行,并为该对累积值。通过GET查询时会发生什么变化?

reduce应该如下所示

_sum
因此,一个简单的“视图”如下所示:

{"rows":[
{"key":null,"value":27065}
]}
{
   "_id": "_design/foo",
   "_rev": "2-6145338c3e47cf0f311367a29787757c",
   "language": "javascript",
   "views": {
       "test1": {
           "map": "function(doc) {\n  emit(null, 1);\n}",
           "reduce": "_sum"
       }
   }
}

通过curl调用视图时,可以尝试传递触发reduce和grouping所需的参数

e、 g

明确告诉CouchDB运行
reduce
函数

$curl-X GEThttp://somehost:5984/ops-db/_设计/ops视图/_视图/计数?reduce=true

组_级别
参数


您可以阅读有关可用选项的更多信息(在
查询选项部分下)

谢谢,将group=true添加到查询参数解决了问题@如果这解决了你的问题,Prakash会善意地标记为答案。谢谢。使用_sum没有任何更改,必须将group=true添加到查询参数中。