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

PyMongo查询is_team为True文档 提取嵌入数组最高分对应记录

MongoDB聚合查询实现方案

直接用聚合管道就能完成需求,不需要额外代码处理,具体逻辑如下:

  • 第一阶段用$match过滤出所有is_team值为true的团队文档
  • 第二阶段用$project定制返回字段:
    • 保留原文档的name字段
    • 用$max运算符直接计算submissions数组里的最高score,命名为MaxScore
    • 先过滤出score等于最高值的提交项,取第一项的time字段,就是最高分对应的提交时间

可直接执行的聚合代码

把代码里的你的集合名替换成实际的集合名称即可:

db.你的集合名.aggregate([
  {
    $match: {
      is_team: true
    }
  },
  {
    $project: {
      _id: 0,
      name: 1,
      MaxScore: { $max: "$submissions.score" },
      time: {
        $let: {
          vars: {
            max_score_item: {
              $arrayElemAt: [
                {
                  $filter: {
                    input: "$submissions",
                    cond: { $eq: ["$$this.score", { $max: "$submissions.score" }] }
                  }
                },
                0
              ]
            }
          },
          in: "$$max_score_item.time"
        }
      }
    }
  }
])

补充说明

如果同一个主体存在多条相同最高分的提交记录,上述写法默认返回匹配到的第一条最高分对应的时间,返回结构完全匹配给出的预期示例。

内容的提问来源于stack exchange,提问作者Mystic Mickey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:48:16