我有一個集合users
在蒙戈和我執行這個地圖降低,我相信這是一個COUNT(*)GROUP BY的origin
相當於:MongoDB的地圖減少數量給予更多的結果比查詢
> m = function() { for (i in this.membership) {
... emit(this.membership[i].platform_profile.origin, 1);
... } }
function() {
for (i in this.membership) {
emit(this.membership[i].platform_profile.origin, 1);
}
}
> r = function(id, values) { var result = 0;
... for (var i = 0; i < values.length; i ++) { result += values[i]; }
... return result; }
function (id, values) {
var result = 0;
for (var i = 0; i < values.length; i++) {
result += values[i];
}
return result;
}
> db.users.mapReduce(m, r, {out : { inline: 1}});
{
"results" : [
{
"_id" : 0,
"value" : 15
},
{
"_id" : 1,
"value" : 449
},
...
}
但如果我嘗試計算有多少文件都將該字段設置爲像1
一個特定的值,我得到較少的結果:
db.users.count({「membership.platform_profile.origin」:1});
424
我缺少什麼?
你可以顯示你的json對象嗎? – 2012-07-09 08:04:30
這是一個行示例:http://pastebin.com/GhtJr9ES – giorgiosironi 2012-07-09 08:24:17