db.collection.renameCollection()

On this page本页内容

Definition定义

db.collection.renameCollection(target, dropTarget)

mongo Shell Method

This page documents the mongo shell method, and does not refer to the MongoDB Node.js driver (or any other driver) method. 本页记录了mongo shell方法,未提及MongoDB Node.js驱动程序(或任何其他驱动程序)方法。For corresponding MongoDB driver API, refer to your specific MongoDB driver documentation instead.有关相应的MongoDB驱动程序API,请参阅特定的MongoDB驱动程序文档。

Renames a collection. 重命名集合。Provides a wrapper for the renameCollection database command.renameCollection数据库命令提供包装。

Parameter参数Type类型Description描述
target string The new name of the collection. 集合的新名称。Enclose the string in quotes. 用引号将字符串括起来。See Naming Restrictions.请参阅命名限制
dropTarget boolean Optional.可选。If true, mongod drops the target of renameCollection prior to renaming the collection. 如果为truemongod会在重命名集合之前删除renameCollectiontrgetThe default value is false.默认值为false

Behavior行为

The db.collection.renameCollection() method operates within a collection by changing the metadata associated with a given collection.db.collection.renameCollection()方法通过更改与给定集合关联的元数据在集合中运行。

Refer to the documentation renameCollection for additional warnings and messages.有关其他警告和消息,请参阅renameCollection文档。

Warning

The db.collection.renameCollection() method and renameCollection command will invalidate open cursors which interrupts queries that are currently returning data.db.collection.renameCollection()方法和renameCollection命令将使中断当前返回数据的查询的打开游标无效。

For Change Streams, the db.collection.renameCollection() method and renameCollection command create an invalidate Event for any existing Change Streams opened on the source or target collection.对于更改流db.collection.renameCollection()方法和renameCollection命令会为在源集合或目标集合上打开的任何现有更改流创建一个invalidate事件

Resource Locking资源锁定

Changed in version 4.2.在版本4.2中更改。

renameCollection() obtains an exclusive lock on the source and target collections for the duration of the operation. 在操作期间获取源集合和目标集合的独占锁。All subsequent operations on the collections must wait until renameCollection() completes. 集合上的所有后续操作都必须等待renameCollection()完成。Prior to MongoDB 4.2, renaming a collection within the same database with renameCollection required obtaining an exclusive database lock.在MongoDB 4.2之前,使用renameCollection重命名同一数据库中的集合需要获得独占数据库锁。

Interaction with mongodumpmongodump的互动

A mongodump started with --oplog fails if a client issues db.collection.renameCollection() during the dump process. 如果客户端在转储过程中发出db.collection.renameCollection(),则以--oplog启动的mongodump将失败。See mongodump.--oplog for more information.请参阅mongodump.--oplog以获取更多信息。

Example示例

Call the db.collection.renameCollection() method on a collection object. 对集合对象调用db.collection.renameCollection()方法。For example:例如:

db.rrecord.renameCollection("record")

This operation will rename the rrecord collection to record. 此操作将rrecord集合重命名为recordIf the target name (i.e. record) is the name of an existing collection, then the operation will fail.如果目标名称(即record)是现有集合的名称,则操作将失败。