MongoDB 查找一个部门的最高工资

标签 mongodb max aggregate

{ id: '101', name: 'Ethan', department: 'IT', salary: 5000 },
{ id: '102', name: 'Sally', department: 'Sales', salary: 6000 },
{ id: '103', name: 'Harry', department: 'HR', salary: 4000 },
{ id: '104', name: 'Jane', department: 'HR', salary: 3500 },
{ id: '105', name: 'Adam', department: 'IT', salary: 6000 },
{ id: '106', name: 'Henry', department: 'IT', salary: 8000 },
{ id: '107', name: 'Dianne', department: 'Sales', salary: 8000 },
{ id: '108', name: 'Barbie', department: 'Sales', salary: 7000 }

有没有办法找到一个部门的最高工资?说IT

db.emp.aggregate([
  { $group:
    { _id: "$department",
      maxSalary: { $max: "$salary" }
    }
  }
])

这会返回所有部门,但有没有办法在同一个聚合语句中仅获取 IT 部门?

最佳答案

您可以将 $match 添加到聚合语句中。它的工作原理如下:

db.articles.aggregate( [
  { $match: { $or: [ { score: { $gt: 70, $lt: 90 } }, { views: { $gte: 1000 } } ] } },
  { $group: { _id: null, count: { $sum: 1 } } }
] );

就您而言,您需要在特定部门$match

需要明确的是,此操作首先使用 $match 管道运算符选择要处理的文档,然后将结果通过管道传输到 $group 管道运算符。

关于MongoDB 查找一个部门的最高工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62946102/

相关文章:

excel - 在包含相同值的范围内查找最大值

python - 迭代 numpy 数组以查找子数组中留下行索引的最大值

arrays - 从数组中获取具有 max 属性的元素

mongodb - 为什么 mongodb 拒绝 ssl 连接?

mongodb - 如何在 Mongodb 集合中的嵌入数组上添加唯一索引

java - 如何在groupby后获取新列表并对一个属性求和

python - Dataframe 中多行的条件累积和

sql - 如果值存在则返回 true 的聚合函数

ruby - 在启动时加载上帝脚本 - 需要全局 gem ?

MongoDB:非稳定时间序列的推荐模式/文档大小