0
使用MapReduce的我不想重新发布这个东西,但我感觉好像我已经输入完全一样的语法,因为大多数的我抬头问题的文件(行)的计数。我试图简单地计算出价格大于9000的行数。有人能告诉我我做错了什么吗?获得MongoDB中
var map1 = function(){
if(this.price > 9000) {
emit(this._id, {count: 1});
}
};
var red1 = function(keyId, values){
var count = 0;
values.forEach(function(v) {
count +=v['count'];
});
return{count: count};
}
db.plots.mapReduce(map1, red1, {out: "query1"})
我的结果落得这样的...
> db.query1.find()
{ "_id" : ObjectId("5170609afa9e8646fc906815"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906816"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90681c"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906834"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90683e"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906846"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90684b"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90684e"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906851"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90685a"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906861"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906864"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906879"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906882"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906883"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90688b"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90688c"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906891"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc906894"), "value" : { "count" : 1 } }
{ "_id" : ObjectId("5170609afa9e8646fc90689a"), "value" : { "count" : 1 } }
我想是刚刚得到一个单一的多少回。
太感谢你了!这清理了很多。是否发出(1,1);强制mapReduce使用我的整个集合作为值?而且我假设你什么时候分组_id:null它会“单独”分组一切吗? – 2013-04-20 03:38:30
基本上不管你发出1或null还是“foo”,它在地图缩小或聚合中都没有关系 - 它只是说按“常量”而不是字段的值对总和进行分组。 – 2013-04-20 03:51:58