$rename(字段重命名)

最后更新:2026-10-09

$rename(字段重命名)

$rename 重命名字段。`{ $rename: { 'oldName': 'newName' } }`,支持点路径处理嵌套字段。若新字段名已存在,旧值会覆盖新字段;目标字段不存在则直接创建。注意:$rename 不会重命名数组元素内部的字段,且移动嵌套字段时不会创建中间文档。

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

📝 语法

{ $rename: { <旧字段名>: <新字段名> } }

⚙️ 参数

旧字段名要重命名的源字段名。
新字段名目标字段名,支持点路径。

返回值:更新结果文档

▶ 示例

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

// $rename:把 username 改为 handle
// 字段不存在时忽略
db.users.updateOne(
  { _id: 1 },
  { $rename: { username: 'handle' } }
)

// 嵌套字段重命名
db.users.updateOne(
  { _id: 1 },
  { $rename: { 'profile.city': 'profile.cityName' } }
)

运行结果:

// 文档中 username 字段变为 handle;profile.city 变为 profile.cityName

📌 注意事项

📚 相关教程

❓ 常见问题

Q$rename 能重命名嵌套字段吗?
A能,用点路径如 'profile.city'。
Q$rename 新字段名已存在会怎样?
A旧值直接覆盖新字段的现值。
Q$rename 会处理数组里的字段吗?
A不会,数组元素内的字段需要遍历更新。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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