1

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# 来做,有什么建议吗,谢谢?

4

1 回答 1

0

meta.id的示例中的字段很可能不是数字(如果您的文档键不是数字),因此该函数不能使用_sum。从文档中:

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

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

编辑:最初误读了 map 函数并假设它article_id被作为值发出。

于 2014-07-17T09:09:52.150 回答