我想在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