MongoDB とドライバー
このページでは、  mongosh メソッドについて説明します。MongoDB ドライバーで同等のメソッドを確認するには、ご使用のプログラミング言語の対応するページを参照してください。
定義
- db.collection.renameCollection(target, dropTarget)
- コレクションの名前を変更します。 - renameCollectionデータベース コマンドのラッパーを提供します。Parameterタイプ説明- target- string - コレクションの新しい名前。文字列を引用符で囲みます。詳細は、「命名制限」を参照してください。 - dropTarget- ブール値 - 任意。 - trueの場合、- mongodではコレクションの名前を変更する前に- renameCollectionの- targetが削除されます。デフォルト値は- falseです。
動作
db.collection.renameCollection()メソッドは、特定のコレクションに関連付けられたメタデータを変更することにより、コレクション内で動作します。
追加の警告とメッセージについては、ドキュメント「renameCollection」を参照してください。
警告
db.collection.renameCollection()メソッドとrenameCollectionコマンドは、現在データを返しているクエリを中断するオープン カーソルを無効にします。
Change Streams の場合、db.collection.renameCollection() メソッドと コマンドは、ソース コレクションまたはターゲットコレクションで開かれている既存のrenameCollection Change Streams を 無効化イベント を作成します。
- この方法には、次の制限があります。 - db.collection.renameCollection()データベース間でコレクションを移動できません。これらの名前変更操作には- renameCollectionを使用します。
- ビューの名前を変更することはできません。 
- db.collection.renameCollection()時系列コレクションではサポートされていません。
- コレクションの名前をそれ自体に変更することはできません。コレクションの名前をそれ自体に変更しようとすると、 - IllegalOperationエラーがスローされます。
 
シャーディングされたクラスターでのリソース ロック
バージョン 5.0 での変更。
シャーディングされたクラスター内のシャーディングされたコレクションまたはシャーディングされていないコレクションの名前を変更すると、ソース コレクションとターゲット コレクションだけがすべてのシャードでロックされます。ソース コレクションとターゲット コレクションでのその後の操作は、名前変更操作が完了するまで待つ必要があります。
MongoDB でのロックの詳細については、「FAQ: 同時実行性」を参照してください。
レプリカセットでのリソース ロック
renameCollection() は、操作している間、ソース コレクションとターゲット コレクションに対して排他ロックを取得します。コレクションに対する後続のすべての操作は、renameCollection() が完了するまで待機する必要があります。
相互作用:  mongodump
mongodump--oplogdb.collection.renameCollection()で開始された は、ダンプ プロセス中にクライアントが を発行すると失敗します。詳しくは、 mongodump.--oplogを参照してください。
例
コレクション オブジェクトでdb.collection.renameCollection()メソッドを呼び出します。 例:
db.rrecord.renameCollection("record") 
この操作により、 rrecordコレクションの名前がrecordに変更されます。ターゲット名(つまり、record )が既存のコレクションの名前である場合、操作は失敗します。