我使用映射減少MongoDB中找出訂單的數量這樣運行圖減少對集中的所有鍵 - MongoDB的
db.order.mapReduce(
function() {
emit (this.customer,{count:1})
},
function(key,values){
var sum =0 ;
values.forEach(
function(value) {
sum+=value['count'];
}
);
return {count:sum};
},
{
query:{customer:ObjectId("552623e7e4b0cade517f9714")},
out:"order_total"
}).find()
,給了我這樣的
{ "_id" : ObjectId("552623e7e4b0cade517f9714"), "value" : { "count" : 13 } }
輸出的客戶
目前它正在爲單個客戶工作,這是一個關鍵。現在我想要這個爲訂單集合中的所有客戶運行這個映射reduce查詢,並輸出所有像這個單一輸出的結果。有什麼方法可以讓我爲所有客戶做到這一點?
刪除「查詢」。這是選擇一個客戶。沒有它,這將會減少到每個客戶的一個結果。 –
我刪除了{query:{customer:ObjectId(「552623e7e4b0cade517f9714」)}, out:「order_total」},現在顯示錯誤錯誤:斷言失敗:需要提供optionsOrOutString,我做錯了什麼? – user29578
是的,我的錯誤我也刪除了部分,非常感謝budddy – user29578