renameCollection(重命名集合)
最后更新:2026-10-09
renameCollection(重命名集合)
renameCollection在数据库内或跨库重命名集合,必须在admin库执行(db.adminCommand)。重命名会移动集合及其索引、元数据,期间该集合写入短暂阻塞。dropTarget: true可覆盖同名目标集合(危险,会删数据)。
| 分类 | 管理命令 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.adminCommand({
renameCollection: "<db>.<集合名>",
to: "<db>.<新集合名>",
dropTarget: false
})
⚙️ 参数
| renameCollection | 源集合,格式库名.集合名 |
|---|---|
| to | 目标集合,格式库名.集合名 |
| dropTarget | true时覆盖同名目标集合,慎用 |
返回值:返回{ ok: 1 }表示成功
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// renameCollection:重命名集合
db.adminCommand({
renameCollection: 'shop.orders_2025',
to: 'shop.orders'
})
运行结果:
{ ok: 1 }
📌 注意事项
- 必须在admin库执行,集合名带库名前缀
- dropTarget: true会删除同名目标集合,慎用
- 重命名期间该集合写入短暂阻塞
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QrenameCollection能跨库吗?
A能,renameCollection与to都写完整库名.集合名即可。
Q重命名会丢数据吗?
A不会,除非设置dropTarget: true覆盖同名目标集合。
Q重命名后索引还在吗?
A在,索引与数据一起移动。