$first(首元素累加器)

最后更新:2026-10-09

$first(首元素累加器)

$first 是累加器,在 $group 中返回组内第一个文档的指定字段值。它依赖文档进入 $group 的顺序,通常先 $sort 再 $group 才有意义(MongoDB 5.2 起 $group 也支持 sortBy)。也可在 $setWindowFields 中作为窗口操作符使用。

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

📝 语法

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

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

▶ 示例

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

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

运行结果:

{ "_id": "Pen", "firstPrice": 20 }

📌 注意事项

📚 相关教程

❓ 常见问题

Q$first 顺序怎么保证?
A先 $sort 排好序再 $group;或 MongoDB 5.2 以上在 $group 里用 sortBy。
Q$first 和 $min 有什么区别?
A$first 取输入顺序的第一条;$min 在全部文档中取最小值,与顺序无关。
Q空组会怎样?
A空组不会被创建,$group 只对实际存在的分组输出。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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