【问题标题】:Query a mongo object - aggregation查询一个mongo对象——聚合
【发布时间】:2020-06-06 12:08:43
【问题描述】:

我有一个这样的 json:

[
  {
    "Customer_ID": 1,
    "Order": [
      {
        "Item": "A",
        "Price": 2,
        "Quantity": 6
      },
      {
        "Item": "B",
        "Price": 3,
        "Quantity": 6
      },
      {
        "Item": "C",
        "Price": 2,
        "Quantity": 8
      }
    ]
  }
]

我想要这样的结果:

总价是价格和数量的乘积

客户,总价格

1,46

2,..

3,..

有人可以帮我处理一下 mongo 查询吗?

【问题讨论】:

    标签: mongodb nested aggregation


    【解决方案1】:

    希望对你有帮助

    [{
        $project: {
            customer: '$Customer_ID',
            values: {
                $map: {
                   input: '$Order',
                   as: 'item',
                   'in': { $multiply: [ '$$item.Price', '$$item.Quantity' ]}
                }
            }
        }
     }, 
     {
         $project: {
             customer:'$customer',
             totalValue: {
                 $sum: '$values'
             }
         }
     }]
    

    让我解释一下这里发生了什么,在第一个 $project 块中,我们将 Customer_ID 投影为 customer 并乘以每个 订购价格数量作为。然后在下一个 $project 块中,我们将所有项目添加到 values 数组中并投影为 totalValue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-29
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多