db.collection.renameCollection()
定义
db.collection.renameCollection(target, dropTarget)
重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
renameCollection
命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
重命名集合。为
renameCollection
数据库命令提供包装器。Parameter类型说明target
字符串集合的新名称。将字符串括在引号中。请参阅命名限制。dropTarget
布尔
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas :用于在云中部署 MongoDB 的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关所有命令的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
db.collection.renameCollection()
方法通过更改与给定集合关联的元数据在集合中进行操作。
有关其他警告和消息,请参阅文档 renameCollection
。
警告
db.collection.renameCollection()
方法和renameCollection
命令会使打开的游标失效。这会为源集合或目标集合上打开的任何现有 变更流 创建 无效事件 ,并中断当前从重命名的集合中返回数据的查询。
该方法具有以下限制:
db.collection.renameCollection()
无法在数据库之间移动集合。使用renameCollection
进行这些重命名操作。您无法重命名视图。
db.collection.renameCollection()
不支持时间序列集合。您无法将集合重命名为其自身。如果您尝试将集合重命名为其自身,则会引发
IllegalOperation
错误。
分片集群中的资源锁定
5.0 版本中的更改。
重命名分片集群中的分片集合或非分片集合时,源集合和目标集合都以独占方式锁定在每个分片上。对源集合和目标集合的后续操作必须等待重命名操作完成。
有关 MongoDB 中锁定的更多信息,请参阅常见问题解答:并发。
副本集中的资源锁定
renameCollection()
在操作期间获得对源集合和目标集合的独占锁。对集合的所有后续操作都必须一直等到 renameCollection()
完成。
互动 mongodump
mongodump
--oplog
如果客户端在转储进程发出db.collection.renameCollection()
,则使用 将失败。有关更多信息,请参阅mongodump.--oplog
。
例子
对集合对象调用db.collection.renameCollection()
方法。示例:
db.rrecord.renameCollection("record")
该操作会将 rrecord
集合重命名为 record
。如果目标名称(即 record
)是现有集合的名称,则该操作会失败。