$pull(按条件移除)

最后更新:2026-10-09

$pull(按条件移除)

$pull 从数组中移除所有等于指定值或满足指定条件的元素。`{ $pull: { tags: 'spam' } }` 移除所有 spam;条件写法 `{ $pull: { scores: { $lt: 60 } } }` 移除所有低于 60 的分数。移除的是全部匹配元素而非单个,是数组清洗的常用工具。

分类更新数组
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $pull: { <数组字段>: <值> | <条件> } }

⚙️ 参数

数组字段要清理的数组字段名。
值或条件等值或查询条件,如 'spam' 或 { $lt: 60 }。

返回值:更新结果文档

▶ 示例

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

// $pull:移除所有 spam 标签
db.articles.updateOne(
  { _id: 1 },
  { $pull: { tags: 'spam' } }
)

// 按条件移除低于 60 的分数
db.students.updateOne(
  { _id: 1 },
  { $pull: { scores: { $lt: 60 } } }
)

运行结果:

// tags 中的 spam 全部移除;scores 中低于 60 的分数全部移除

📌 注意事项

📚 相关教程

❓ 常见问题

Q$pull 和 $pop 的区别?
A$pull 按值/条件移除任意位置的元素;$pop 只能移除首尾元素。
Q$pull 能按条件移除吗?
A能,条件支持查询操作符,如 { $pull: { scores: { $lt: 60 } } }。
Q$pull 会移除所有匹配还是只一个?
A所有匹配元素都会移除。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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