是的,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_id
和totalPrice
),并在聚合管道中使用$reduce
操作符來計算每個訂單的商品價格總和。