【发布时间】:2018-10-25 17:20:34
【问题描述】:
在 mongoDB 中,我输入了一个包含公司员工数据的集合,包括他们的薪水。我在聚合中使用 $avg 操作计算了员工的平均薪水。现在,如果我只想计算那些有薪水的员工的平均薪水小于某个值,我该怎么做?
【问题讨论】:
标签: mongodb mongodb-query
在 mongoDB 中,我输入了一个包含公司员工数据的集合,包括他们的薪水。我在聚合中使用 $avg 操作计算了员工的平均薪水。现在,如果我只想计算那些有薪水的员工的平均薪水小于某个值,我该怎么做?
【问题讨论】:
标签: mongodb mongodb-query
目前我无法访问 mongodb 来测试查询,但在您的情况下,您只需在 $avg 分组之前的聚合“管道”中添加一个 $match 查询对象。
类似的东西:
[{'$match':{'salary':{'$lt':199}}}, {'$group':{...}}]
【讨论】:
你可以使用
db.collectionName.aggregate([
{
$match: {
"salary": {
$lte: 100
}
}
},
{
$group: {
"_id": "$groupKey",
"avg": {
$avg: "$salary"
}
}
}
])
【讨论】: