$unset(移除字段)

最后更新:2026-10-09

$unset(移除字段)

$unset 从文档中移除指定字段,保留其余所有字段。它是 { $project: { 字段: 0 } } 的简写,可一次移除多个字段,支持点号路径移除内嵌子字段。适合清理敏感字段(如密码、令牌)和中间计算字段。

分类核心阶段
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ $unset: "<字段名>" } 或 { $unset: [ "<字段1>", "<字段2>" ] }

⚙️ 参数

字段要移除的字段名,或字段名数组。

返回值:移除指定字段后的文档流

▶ 示例

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

// $unset:移除敏感字段和内嵌卡号
db.users.aggregate([
  { $unset: ['password', 'token', 'detail.card'] }
])

运行结果:

// 文档不再包含 password、token 和 detail.card

📌 注意事项

更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Q$unset 能删内嵌字段吗?
A能,用点号路径如 'detail.card',只删除该子字段。
Q$unset 和 $project 删除字段有何区别?
A无本质区别,$unset 是 { $project: { 字段: 0 } } 的语法糖,多字段删除更简洁。
Q$unset 移除不存在的字段会怎样?
A不报错,文档原样通过。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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