我有一个存储近50万条推文的couchdb。每条推文都有一个screen_name。我在couchdb中使用map reduce函数列出所有唯一的屏幕名称。但是我怎么知道这个数据库中有多少个不同的屏幕名称呢?我的JavaScript代码:
map.js:
function(doc) {
emit(doc.screen_name, 1);
}
reudce.js:
_stats
答案 0 :(得分:0)
你可以回答"多少"使用group参数的问题。您已经有_stats
缩减,您现在需要做的就是: -
http://localhost:5984/your_db/_design/your_ddoc/_view/your_view?group=false&reduce=true
这会给你一个像
的结果{"rows":[
{"key":null,"value":{"sum":13700,"count":40,"min":232,"max":674,"sumsqr":6157480}}
]}
如果你在返回的结果中查看值对象,你有一个" count"包含视图中所有screen_names计数的键。这应该给你回答"有多少个screen_names?"
如果你这样做
?group=true
到同一个查询网址,你应该得到像
这样的结果{"rows":[
{"key":"some_key","value":{"sum":696,"count":3,"min":232,"max":232,"sumsqr":161472}}
]}
为您提供_stats
唯一键。这应该给你一个答案"有多少独特的screen_names?"
您可以将组级别用于复杂键。对于您的用例我认为group=false
和group=true
就足够了。