mongodb

MongoDB投影查询是否支持聚合操作

小樊
82
2024-10-30 22:23:39
栏目: 云计算

是的,MongoDB的投影查询支持聚合操作。在MongoDB中,投影查询是一种用于指定返回文档中哪些字段的方法。在聚合管道中,你可以使用投影查询来限制和转换聚合结果。

以下是一个使用投影查询和聚合操作的示例:

假设我们有一个名为orders的集合,其中包含以下文档:

{
  "_id": 1,
  "customer_id": 1,
  "items": [
    {
      "product_id": 101,
      "quantity": 2,
      "price": 10
    },
    {
      "product_id": 102,
      "quantity": 1,
      "price": 20
    }
  ],
  "status": "A"
}

现在,我们想要查询所有订单的客户ID和订单中的商品价格总和。我们可以使用以下聚合管道查询:

db.orders.aggregate([
  {
    $project: {
      _id: 0,
      customer_id: 1,
      totalPrice: {
        $reduce: {
          input: "$items",
          initialValue: 0,
          in: {
            $add: ["$$value", { $multiply: ["$$this.price", "$$this.quantity"] }]
          }
        }
      }
    }
  }
])

这个查询的结果将如下所示:

{
  "customer_id": 1,
  "totalPrice": 50
}

在这个例子中,我们使用了投影查询来指定返回的字段(customer_idtotalPrice),并在聚合管道中使用$reduce操作符来计算每个订单的商品价格总和。

0
看了该问题的人还看了