我想在Mongo shell中做一个简单的map reduce,但reduce函数永远不会被调用。这是我的代码:Mongo DB Map/Reduce - Reduce不被调用
db.sellers.mapReduce(
function(){ emit(this._id, 'Map') } ,
function(k,vs){ return 'Reduce' },
{ out: { inline: 1}})
,其结果是
{
"results" : [
{
"_id" : ObjectId("4da0bdb56bd728c276911e1a"),
"value" : "Map"
},
{
"_id" : ObjectId("4da0df9a6bd728c276911e1b"),
"value" : "Map"
}
],
"timeMillis" : 0,
"counts" : {
"input" : 2,
"emit" : 2,
"output" : 2
},
"ok" : 1,
}
的哪些错误?
我使用的MongoDB 1.8.1 32位在Ubuntu 10.10
你是对的Tomasz。我从MongoDB文档中挑选了这个示例。如果明确提到这一点,它将有助于Map/Reduce像我这样的新手。一个谦虚的“绿色检查”给你! – Adil 2011-04-10 13:45:12
仍然可以推断,减少会收到,使用你的例子,减少(_id,['Map1'])的情况下,只有一个项目发射。不通过减少打破我的结果集。 – 2012-02-24 02:27:44
我认为不调用单个值减少是一个奇怪的实现选择。所以每次你改变'map'结果的结构时,你还必须调整'reduce',以便在单个值'map'结果的情况下得到统一的结果。 – Chaquotay 2013-05-18 10:15:51