2

我是 CouchDB 的新手,正在玩 curl,但我似乎无法正确减少我的数据

curl -X POST -d '{ 
  "map":"function(doc){ emit(doc.loc, 1) }",
  "reduce":"function(keys, values){ return sum(values) }"
}' -H 'Content-Type: application/json' 'http://localhost:5984/users/_temp_view'

我的意图是根据他们的位置(doc.loc)减少我的文档,例如“US”、“AU”、“CA”。

我希望得到这样的东西:

{
  "rows":[
   {"key":"US", "value":10},
   {"key":"AU", "value": 5},
   {"key":"CA", "value": 10}
  ]
}

但是相反,我得到了一个包含所有文档计数的空键

{"rows":[{"key":null,"value":1822}]}

就像我试过的理智检查一样

emit(doc.loc, doc.loc)

并得到

{"rows":[{"key":null,"value":"00AUAUAUAU...

这意味着我的数据上确实有一个 doc.loc


同样,这完全是新手级别,所以我可能错过了非常简单的内容。

4

1 回答 1

1

解决了我?group=true在查询中遗漏的问题。

curl -X POST -d '{ 
  "map":"function(doc){ emit(doc.loc, 1) }", 
  "reduce":"function(keys, values){ return sum(values) }" 
}' -H 'Content-Type: application/json' 'http://localhost:5984/users/_temp_view?group=true'

给了我预期的结果

{"rows":[{"key":"--","value":25},{"key":"AU","value":493}, ...
于 2012-07-25T08:55:53.560 回答