Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.collection.renameCollection()

在此页面上

  • 定义
  • 兼容性
  • 行为
  • 例子

带驱动程序的 MongoDB

本页面提供 mongosh 方法的相关信息。要查看 MongoDB 驱动程序中的等效方法,请参阅编程语言的相应页面:

C#Java SyncNode.jsPyMongoCC++GoJava RSKotlin CoroutineKotlin SyncPHPMongoidRustScala
db.collection.renameCollection(target, dropTarget)

重命名集合。为renameCollection数据库命令提供包装器。

Parameter
类型
说明
target
字符串
集合的新名称。将字符串括在引号中。请参阅命名限制
dropTarget
布尔
可选。如果 truemongod 在重命名集合之前删除 renameCollection 中的 target。默认值为 false

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

db.collection.renameCollection() 方法通过更改与给定集合相关的元数据,在集合内进行操作。

有关其他警告和消息,请参阅文档 renameCollection

警告

db.collection.renameCollection()方法和renameCollection 命令会使打开的游标失效。这会为源集合或目标集合上打开的任何现有变更流创建一个无效事件 ,并中断当前从重命名集合返回数据的查询。

  • 该方法具有以下限制:

    • db.collection.renameCollection() 无法在各数据库之间移动数据集。将 renameCollection 用于此类重命名操作。

    • 您无法重命名视图

    • db.collection.renameCollection()时间序列集合中不支持。

    • 您无法将集合重命名为其自身。如果您尝试将集合重命名为其自身,则会引发 IllegalOperation 错误。

5.0 版本中的更改

重命名分片集群中的分片集合或非分片集合时,源集合和目标集合都以独占方式锁定在每个分片上。对源集合和目标集合的后续操作必须等待重命名操作完成。

有关 MongoDB 中锁定的更多信息,请参阅常见问题解答:并发。

renameCollection() 在操作期间获得对源集合和目标集合的独占锁。对集合的所有后续操作都必须一直等到 renameCollection() 完成。

如果客户端在转储过程中发出 db.collection.renameCollection(),则以 --oplog 启动的 mongodump会失败。有关更多信息,请参阅 mongodump.--oplog

在集合对象上调用 db.collection.renameCollection() 方法。例如:

db.rrecord.renameCollection("record")

该操作会将 rrecord 集合重命名为 record。如果目标名称(即 record)是现有集合的名称,则该操作会失败。

后退

db.collection.remove