在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#做,任何建议,谢谢?
答案 0 :(得分:0)
示例中的meta.id
字段很可能不是数字(如果您的文档密钥是非数字的),因此_sum
函数无法使用该字段。来自documentation:
_sum :将所有发布到索引的值相加。例如,对于结果集中的值3,4和5,reduce函数的结果将为12。
假设您只想要计算地图结果,而不是它们的总和,那么您应该考虑使用_count
内置函数而不是_sum
。
编辑:最初误读了地图功能,并认为article_id
是作为值发出的。