我正在嘗試獲取 MongoDB 中集合的平均值和總和,為此我做了一個$lookup正確回傳資訊但是當我想對其進行分組并獲得總和以及平均值時,這兩個屬性總是將它們回傳為 null
這是我的 MongoDB 查詢:
db.clients.aggregate(
[
{
$lookup: { // DATA OK
from: 'sales',
localField: '_id',
foreignField: 'clientId',
as: 'ventaPorCliente'
}
},
{
$group: { // total_average and sum null
_id: "$idClient",
username: { $first: "$name" },
total_average: { $avg: 'ventaPorCliente.total'},
sum: { $sum: 'ventaPorCliente.total'},
count: { $sum: 1 }
}
},
]
)
回復:
[
{
"_id": "1",
"username": "Peishion",
"total_average": null,
"sum": 0,
"count": 1
},
{
"_id": "1010",
"username": "BENJAMIN",
"total_average": null,
"sum": 0,
"count": 1
}
]
我如何訪問ventaporCliente.total?
謝謝。
uj5u.com熱心網友回復:
你錯過了$標志,也展開了ventaPorCliente陣列,因為 $lookup 將匹配的物件推送到陣列中。嘗試這個:
db.clients.aggregate(
[
{
$lookup: {
from: 'sales',
localField: '_id',
foreignField: 'clientId',
as: 'ventaPorCliente'
}
},
{
$unwind: "$ventaPorCliente"
}
{
$group: {
_id: "$idClient",
username: { $first: "$name" },
total_average: { $avg: '$ventaPorCliente.total'},
sum: { $sum: '$ventaPorCliente.total'},
count: { $sum: 1 }
}
},
]
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/535609.html
