【问题标题】:mongoDB, sum the product of two fieldsmongoDB,对两个字段的乘积求和
【发布时间】:2014-09-11 20:34:47
【问题描述】:

我有一个项目列表,我希望 mongoDB 返回它们的价格*数量之和的结果,换句话说,我的项目的总价值。

Schema = {
   _id: ObjectId,
   price: Number,
   quantity: Number
}

我正在尝试使用聚合框架或 map reduce,但我不知道如何正确使用它。

这里有一个求价格总和的例子,

db.items.aggregate([
    {$group: {
        _id: null,
        prices: {$sum: "$price"}
    }}
])

这是我想要得到的:

db.items.aggregate([
    {$group: {
        _id: null,
        prices: {$sum: "$price"*"$quantity"}
    }}
])

【问题讨论】:

    标签: mongodb mapreduce mongodb-query aggregation-framework


    【解决方案1】:

    您不需要为此使用 map-reduce。您可以使用聚合框架并组合多个聚合运算符。你几乎明白了,你只是错过了最后一块 - $multiply 运营商:

    db.items.aggregate([{
        "$group" : { 
            "_id" : null, 
            "prices" : { 
                "$sum" : { 
                    "$multiply" : ["$price", "$quantity"]
                }
            }
        }
    }]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 2020-06-28
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多