【问题标题】:mongoDB, sum many values querymongoDB,求和多值查询
【发布时间】:2014-07-20 15:21:23
【问题描述】:

我有一个项目列表,我希望 mongoDB 返回它们价格总和的结果。

Schema = {
   _id: ObjectId,
   price: Integer,
}

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

这里是一个例子

db.items.aggregate([
    {$match: {_id: {$in: [103070,103069]}}}, 
    {$unwind: "$items"}, 
    {$group: {_id: "$items", count: {$sum: "$items.price"}}}, 
    {$project: {_id: 1}}
])

【问题讨论】:

  • 您问题中的架构与您的代码并不完全匹配。
  • 您能否从您的收藏中发布一个示例文档,它可以更好地帮助我们解决您的问题。谢谢

标签: mongodb aggregation-framework


【解决方案1】:

您没有正确使用$in 运算符...$in 用于在数组中查找元素,在这种情况下您应该使用$gte(大于等于)、$lte(小于等于)...您的架构根本没有"nodeId"...$unwind 用于当您在文档中有一个数组时,我认为不是这种情况...如果我理解查询应该是这样的:

db.items.aggregate([
    {$match : {_id : { $gte : 103069, $lte : 103070 } } },  
    {$group: {_id: null, count: {$sum: "$price"}}}, 
    {$project: {_id: 0, count : 1}}
])

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多