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

如何在MongoDB中无需降序排序直接获取数据内最新年份

MongoDB提取最新年份的高效实现方案

以下两种方案均不会返回全量年份数据,可直接得到唯一的最大年份值:

  • 方案1:使用聚合框架的$max算子(最推荐)
    直接通过分组聚合取年份字段的最大值,MongoDB存在对应字段索引时会直接命中索引返回结果,无需扫描全表数据,示例代码如下:
    // 替换yourCollection为你的集合名,替换year为实际存储年份的字段名
    db.yourCollection.aggregate([
      {
        $group: {
          _id: null,
          latestYear: { $max: "$year" }
        }
      }
    ])
    
    查询结果会返回仅包含latestYear字段的单条文档,值即为你需要的2018。
  • 方案2:find配合排序+限制返回条数
    你提到的不想用降序排序的顾虑通常是担心返回全量数据,只要搭配limit(1),数据库会在拿到最大的单条结果后直接终止查询,并不会返回所有年份数据,示例代码如下:
    // 替换yourCollection为你的集合名,替换year为实际存储年份的字段名
    db.yourCollection.find({}, { year: 1, _id: 0 })
      .sort({ year: -1 })
      .limit(1)
    
    该方案同样会返回仅包含年份值的单条结果。

性能优化提示

请确保存储年份的字段已建立单列索引,两种方案均可命中索引实现毫秒级返回,无全表扫描开销。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:54:03