You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB中查询指定empno对应的points字段最大值

MongoDB指定员工最高积分查询实现方案

你可以通过以下两种常用方式实现需求,你可以根据自己的使用场景选择:

方式一:使用聚合管道查询(推荐用于统计类场景)

通过$match先筛选指定员工的所有记录,再用$max聚合算子直接计算最大积分值:

// 替换emp_points为你的实际集合名,empno的取值替换为你要查询的员工编号
db.emp_points.aggregate([
  // 过滤出目标员工的所有记录
  { $match: { empno: 6000 } },
  // 统计最大积分
  {
    $group: {
      _id: null,
      max_points: { $max: "$points" }
    }
  }
])

返回结果中max_points字段就是该员工的最高积分,你示例中查询6000员工时返回值为80。如果需要直接拿到数值,可以直接取结果数组的第一个元素的max_points属性即可。

方式二:使用排序+取第一条实现(写法更简单)

把目标员工的记录按积分降序排序,取第一条就是最高积分的记录:

// 替换emp_points为你的实际集合名,empno的取值替换为你要查询的员工编号
db.emp_points.find(
  { empno: 6000 },
  { points: 1, _id: 0 } // 只返回points字段,不需要返回_id
).sort({ points: -1 }).limit(1)

如果该员工没有任何记录,两种方式都会返回空结果,你可以根据业务需要自行添加默认值处理逻辑。


内容的提问来源于stack exchange,提问作者techshot nextgen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:06:02