我用它来获得我想要的结果,基本上我需要每个供应商的总收入。
db.lineitems.group(
{
key : {"$partsupp.supplier.suppkey" : 1},
cond : { "shipdate" : {"$gte":19960101,"$lt":19960401}},
reduce : function (curr, result) {
result.totalgroup+=curr.extendedprice*1-curr.discount;
},
initial : {totalgroup : 0}
}
)
结果如下:
[
{
"$partsupp.supplier.suppkey" : null,
"totalgroup" : 208208820.8400005
}
]
这将返回所有供应商收入的总和。
答案 0 :(得分:0)
var red2 = function(doc, out) {
out.revenue+=doc.extendedprice*(1-doc.discount);
};
var eachsupp = db.lineitems.group( {
key : { "partsupp.supplier.suppkey" : true},
cond : { "shipdate" : {$gte: 19960101, $lt: 19960401}},
initial: { revenue : 0},
reduce : red2,
});