Couchbase创建组查询视图错误

时间:2014-07-17 08:24:03

标签: sql couchbase couchbase-view

Couchbase中,我有格式的文件列表:

{
   "article_id": "107485",
   "domain": "thethao.langthuma.mr",
   "category_alias": "langthuma-anh-the-thao",
   "ip": "113.170.188.166",
   "process_time": "635411909410581019",
   "created_at": "635411845276059707"
}

我创建了一个视图:

Map
function (doc, meta) {
  emit([doc.article_id,doc.domain],meta.id);
}

Reduce: (use built-in)
_sum

当我需要像SQL这样的查询时:

Select article_id, domain, Count(*) from table group by article_id, domain

但我跑了并得到错误

{error,<<"Builtin _sum function requires map values to be numbers or lists of numbers">>}

请告诉我我哪里做错了?解决方案呢?

我想用C#做,任何建议,谢谢?

1 个答案:

答案 0 :(得分:0)

示例中的meta.id字段很可能不是数字(如果您的文档密钥是非数字的),因此_sum函数无法使用该字段。来自documentation

  

_sum :将所有发布到索引的值相加。例如,对于结果集中的值3,4和5,reduce函数的结果将为12。

假设您只想要计算地图结果,而不是它们的总和,那么您应该考虑使用_count内置函数而不是_sum

编辑:最初误读了地图功能,并认为article_id是作为值发出的。