Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

db.collection.renameCollection()

項目一覧

  • 定義
  • 互換性
  • 動作

MongoDB とドライバー

このページでは、 mongosh メソッドについて説明します。MongoDB ドライバーで同等のメソッドを確認するには、ご使用のプログラミング言語の対応するページを参照してください。

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

コレクションの名前を変更します。 renameCollectionデータベースコマンドのラッパーを提供します。

Parameter
タイプ
説明
target
string
コレクションの新しい名前。文字列を引用符で囲みます。詳細は、「命名制限」を参照してください。
dropTarget
ブール値
任意。trueの場合、 mongodではコレクションの名前を変更する前にrenameCollectiontargetが削除されます。デフォルト値はfalseです。

このメソッドは、次の環境でホストされている配置で使用できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このコマンドは、すべてのMongoDB Atlasクラスターでサポートされています。すべてのコマンドの 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 でのロックの詳細については、「FAQ: 同時実行性」を参照してください。

renameCollection() は、操作している間、ソース コレクションとターゲット コレクションに対して排他ロックを取得します。コレクションに対する後続のすべての操作は、renameCollection() が完了するまで待機する必要があります。

--oplog で開始された mongodumpダンプ処理中にクライアントが db.collection.renameCollection() を発行すると失敗します。詳細については、mongodump.--oplog を参照してください。

コレクションオブジェクトで db.collection.renameCollection() メソッドを呼び出します。以下に例を挙げます。

db.rrecord.renameCollection("record")

この操作により、 rrecordコレクションの名前がrecordに変更されます。ターゲット名(つまり、record )が既存のコレクションの名前である場合、操作は失敗します。

戻る

db.collection.remove