2016-04-23 86 views
0

我使用它来获得我想要的结果,基本上我需要来自每个供应商的总收入。MongoDB组在密钥中检索为空

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
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, 
});