匹配
如何編寫查詢以使所有平均年齡低於或等於 70000 美元的部門超過或等於 35?
為此,我們需要編寫一個查詢來匹配薪水小於或等於$ 70000 的員工。然後新增聚合階段以按部門對員工進行分組。然後新增一個帶有名為 average_age 的欄位的累加器,使用$ avg 累加器查詢每個部門的平均年齡,並在現有$ match 和$ group 聚合下面新增另一個$ match 聚合,這樣我們只檢索 average_age 為結果的結果大於或等於 35。
db.employees.aggregate([
{"$match": {"salary": {"$lte": 70000}}},
{"$group": {"_id": "$dept",
"average_age": {"$avg": "$age"}
}
},
{"$match": {"average_age": {"$gte": 35}}}
])
結果是:
{
"_id": "IT",
"average_age": 31
}
{
"_id": "Customer Service",
"average_age": 34.5
}
{
"_id": "Finance",
"average_age": 32.5
}