带驱动程序的 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)是现有集合的名称,则该操作会失败。