db.collection.renameCollection()
带驱动程序的 MongoDB
本页面提供 mongosh
方法的相关信息。要查看 MongoDB 驱动程序中的等效方法,请参阅编程语言的相应页面:
定义
db.collection.renameCollection(target, dropTarget)
重命名集合。为
renameCollection
数据库命令提供包装器。Parameter类型说明target
字符串
集合的新名称。将字符串括在引号中。请参阅命名限制。
dropTarget
布尔
可选。如果
true
,mongod
在重命名集合之前删除renameCollection
中的target
。默认值为false
。
行为
db.collection.renameCollection()
方法通过更改与给定集合相关的元数据,在集合内进行操作。
有关其他警告和消息,请参阅文档 renameCollection
。
警告
db.collection.renameCollection()
方法和 renameCollection
命令会使打开的游标失效,从而中断当前正在返回数据的查询。
对于变更流,db.collection.renameCollection()
方法和 renameCollection
命令会为源集合或目标集合上打开的任何现有变更流创建 invalidate 状态。
该方法具有以下限制:
db.collection.renameCollection()
无法在各数据库之间移动数据集。将renameCollection
用于此类重命名操作。您无法重命名视图。
您无法将集合重命名为其自身。如果您尝试将集合重命名为其自身,则会引发
IllegalOperation
错误。
分片集群中的资源锁定
5.0 版本中的更改。
重命名分片集群中的分片集合或非分片集合时,源集合和目标集合都以独占方式锁定在每个分片上。对源集合和目标集合的后续操作必须等待重命名操作完成。
有关 MongoDB 中锁定的更多信息,请参阅常见问题解答:并发。
副本集中的资源锁定
renameCollection()
在操作期间获得对源集合和目标集合的独占锁。对集合的所有后续操作都必须一直等到 renameCollection()
完成。
互动 mongodump
如果客户端在转储进程中发出 db.collection.renameCollection()
,则以 --oplog
开头的 mongodump
会失败。有关更多信息,请参阅 mongodump.--oplog
。
例子
在集合对象上调用 db.collection.renameCollection()
方法。例如:
db.rrecord.renameCollection("record")
该操作会将 rrecord
集合重命名为 record
。如果目标名称(即 record
)是现有集合的名称,则该操作会失败。