You need to enable JavaScript to run this app. MongoDB查询编写:用$in一次性获取指定商品列表的日期最新记录
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB查询编写:用$in一次性获取指定商品列表的日期最新记录

按item分组取最新日期记录的MongoDB实现方案

可直接运行的查询语句

完全覆盖你提出的使用$in过滤、抓取每个匹配item最新条目需求的聚合查询如下:

db.collection.aggregate([
  // 第一步:通过$in操作符过滤目标item范围的文档
  {
    $match: {
      item: { $in: ["abc", "pop"] }
    }
  },
  // 第二步:按date字段倒序排序,保证同item下最新文档排在组内最前
  {
    $sort: { date: -1 }
  },
  // 第三步:按item分组,取组内排序后的第一条完整文档
  {
    $group: {
      _id: "$item",
      latestDocument: { $first: "$$ROOT" }
    }
  },
  // 第四步:将完整文档映射为顶层结构,匹配原集合输出格式
  {
    $replaceRoot: { newRoot: "$latestDocument" }
  }
])

执行效果说明

  • 第一步过滤后仅保留item为abc、pop的相关记录,提前缩小数据处理范围
  • 排序后同item的文档按时间从晚到早排列,避免分组时误取非最新记录
  • 通过$$ROOT直接获取文档全量字段,不需要逐字段映射原有结构,适配后续字段变更
  • 最终输出结果和预期完全匹配:返回abc品类2014-02-15的记录、pop品类2014-02-16的最新记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 13:36:04