我使用映射减少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