renameCollection() (コレクションのリネーム)
最終更新:2026-10-09
renameCollection() (コレクションのリネーム)
renameCollection() はコレクションの名前を変更します。例: `db.users.renameCollection('members')`。データとインデックスはリネーム後も維持されますが、名前の衝突はデフォルトでエラーになります。{dropTarget: true} を渡すと、先にターゲットを削除します。操作中コレクションは一時的に利用できなくなるため、本番でのリネームは慎重にスケジュールしてください。
| カテゴリ | インデックスと管理 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.renameCollection(<newName>, { dropTarget: <bool> })
⚙️ パラメータ
| 新しい名前 | 新しいコレクション名(文字列)。 |
|---|---|
| dropTarget | 任意。true は既存の対象を先に削除します。既定の false ではエラーになります。 |
戻り値:ok ステータスを持つ結果オブジェクト。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// renameCollection: users を members にリネームする
db.users.renameCollection('members')
出力:
{ ok: 1 }
📌 注意事項
- リネーム中、コレクションは一時的に利用できなくなる
- 既存のターゲットはデフォルトでエラー。dropTarget: true を渡す
- コード内のコレクション名参照も更新する
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
QrenameCollection はデータを失いますか?
Aいいえ。データとインデックスは完全に維持され、名前だけが変わります。
Q新しい名前がすでに存在したら?
Aデフォルトでエラーになります。{dropTarget: true} を渡すと同名コレクションを先に削除します。
Qリネーム中に読み書きできますか?
A操作は原子的ですが、コレクションを一時的にロックします。本番ではオフピークにスケジュールしてください。