我創造了一個集「的帖子」有標題,描述,通過評論MongoDB中的各個用戶在MongoDB中創造的職位數目:寫MapReduce的函數來計算
db.posts.insert({
title:'MongoDB',
description:'MongoDB is a NoSQL DB',
by:'Tom',
comments:[
{user:'ram',
message:'We use MongoDB'
}
]
}
)
同樣,我添加了另外兩個條目。 現在,我想寫MapReduce函數來統計MongoDB中各種用戶創建的帖子數。我用:
db.posts.mapReduce(
function() { emit(this.user_id,1); },
function(key, values) {return Array.sum(values)}, {
out:"post_total"
}
).find()
輸出:
{"id": null , "value": 3}
但是,我想顯示是這樣的:
{ "_id" : "tom_id", "value" : 2 }
{ "_id" : "mark_id", "value" : 1 }
或
{ "by" : "tom", "value" : 2 }
{ "by" : "mark", "value" : 1 }
db.posts.mapReduce( 函數(){ EMIT(this.user_id,1);} , 功能(鍵,值){ 返回Array.sum(值); },{ 「出 「:{ 」內聯「:1}} ).find() 輸出: [{」 ID「:NULL, 」值「:3}] 不工作。 –
@SarojShrestha爲什麼要將find()添加到內聯輸出中? – chridam
沒有查找()輸出 「結果」:[ { 「ID」:空, 「值」:3 } ] 「timeMillis」:15, 「計數」:{ 「輸入」:3, 「EMIT」:3, 「減少」:3, 「輸出」:1 }, 「OK」:1 } –