如何在couchdb中获取键的值

时间:2015-06-06 07:46:00

标签: dictionary couchdb reduce

我有一个存储近50万条推文的couchdb。每条推文都有一个screen_name。我在couchdb中使用map reduce函数列出所有唯一的屏幕名称。但是我怎么知道这个数据库中有多少个不同的屏幕名称呢?我的JavaScript代码:

map.js:

function(doc) {
     emit(doc.screen_name, 1);

}

reudce.js:

_stats

1 个答案:

答案 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=falsegroup=true就足够了。