$last(末元素累加器)

最后更新:2026-10-09

$last(末元素累加器)

$last 是累加器,在 $group 中返回组内最后一个文档的指定字段值,与 $first 对称。同样依赖输入顺序,使用前应 $sort。典型场景:取每组最新记录。也可在 $setWindowFields 中作为窗口操作符使用。

分类累加器
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $group: { _id: <键>, last: { $last: "$字段" } } }

返回值:组内最后一条文档的字段值(按输入顺序)

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $last:取每组最新一条的价格
db.sales.aggregate([
  { $sort: { date: 1 } },
  { $group: { _id: '$item', lastPrice: { $last: '$price' } } }
])

运行结果:

{ "_id": "Pen", "lastPrice": 50 }

📌 注意事项

📚 相关教程

❓ 常见问题

Q怎么取每组最新记录?
A$sort 按时间升序后 $group 用 $last,即可取到时间最新的值。
Q$last 不排序会怎样?
A结果是输入顺序的最后一条,通常没有业务意义。
Q$last 和 $top 有什么区别?
A$top 按排序规则取最优;$last 只按输入顺序取末尾,语义不同。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏