我是Mongodb的初學者,我想執行以下查詢,以找到每個任務進度為 "作業 "的員工的總任務數。
db.employees.aggregate( [
{
"$lookup"/span>: {
"from": "assignment",
"localField": "empno",
"foreignField": "emp_no",
"as": "assignments".
}
},
{
$project: {
points: {
$sum: {
$map: {
input: "$assignments"。
in: { $match:{$Sthis.progress:"Working"}}。
}
}
},
empno: 1。
}
}
])
當我執行這個查詢時,我得到的錯誤是 "無效的$project::造成的:。未識別的運算式'$match'"。我怎樣才能解決這個問題呢?
uj5u.com熱心網友回復:
在map的輸入中添加過濾器,并在過濾器中設定條件
db.employees.aggregate( [
{
"$lookup"/span>: {
"from": "assignment",
"localField": "empno",
"foreignField": "emp_no",
"as": "assignments".
}
},
{
$project: {
points: {
$sum: {
$map: {
input:{"$filter"/span>:
{ "input": "$assignments"/span>, "as"/span>: "z", "cond": {$eq:["$z.progress","Working"]}. } },
as :"s",
in: "$s".
}
}
},
empno: 1: empno.
}
}
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/331070.html
標籤:
