$each(批量元素)

最后更新:2026-10-09

$each(批量元素)

$each 为 $push 和 $addToSet 提供多个待添加元素。`{ $push: { tags: { $each: ['a', 'b', 'c'] } } }`。$addToSet 配合 $each 时逐个去重添加。它不能单独使用,必须内嵌在 $push 或 $addToSet 中,也可与 $position、$slice、$sort 组合实现复杂的数组维护。

分类更新修饰器
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $push: { <数组字段>: { $each: [ <值1>, <值2>, ... ] } } }

⚙️ 参数

数组字段要追加元素的数组字段名。
值数组待添加的元素列表。

返回值:更新结果文档

▶ 示例

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

// $each:批量追加标签
db.articles.updateOne(
  { _id: 1 },
  { $push: { tags: { $each: ['mongodb', 'database'] } } }
)

// $addToSet 配合 $each 去重添加
db.articles.updateOne(
  { _id: 1 },
  { $addToSet: { tags: { $each: ['database', 'nosql'] } } }
)

运行结果:

// tags 追加两个值;第二次添加时 database 已存在则跳过,仅添加 nosql

📌 注意事项

📚 相关教程

❓ 常见问题

Q$each 能单独使用吗?
A不能,必须写在 $push 或 $addToSet 内部。
Q$addToSet 加 $each 怎么去重?
A每个值逐个判断,已存在则跳过,保证最终无重复。
Q$each 能配合 $sort 吗?
A能,$push 内 $each 后跟 $sort 会在追加后排序。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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