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

如何在MongoDB中查询总分最高的学生姓名?

获取总分最高学生的MongoDB聚合查询方案

基础方案(仅取单个最高分学生)

在你已有的聚合管道基础上,添加$sort和$limit阶段,就能直接拿到总分最高的学生记录:

db.student.aggregate([
  {$project: {"name": 1, total: {$sum: ["$scores.score"]}}},
  {$sort: {total: -1}}, // 按总分降序排序,最高分排首位
  {$limit: 1} // 只返回第一条记录
])

进阶方案(获取所有并列最高分学生)

如果存在多个学生总分相同且都是最高分的情况,上面的查询只会返回其中一个。用以下方式可以拿到所有符合条件的学生:

db.student.aggregate([
  {$project: {"name": 1, total: {$sum: ["$scores.score"]}}},
  {$sort: {total: -1}},
  // 聚合所有学生记录,同时计算出最高总分
  {$group: {
    _id: null,
    allStudents: {$push: "$$ROOT"},
    maxTotal: {$max: "$total"}
  }},
  // 从所有学生中筛选出总分等于最高总分的记录
  {$project: {
    topStudents: {$filter: {
      input: "$allStudents",
      cond: {$eq: ["$$this.total", "$maxTotal"]}
    }}
  }}
])

内容的提问来源于stack exchange,提问作者Pranay kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:53:11