MongoDBでコレクションの名前を変更する方法(renameCollectionの使い方)
MongoDBで既存のコレクションの名前を変更したい場合、renameCollection()メソッドを使用します。この記事では、実際にコレクションを作成し、その名前を変更するまでの手順を順番に解説します。
1. ドキュメントを含むコレクションを作成する
まず、insertOne()メソッドを使ってサンプルドキュメントを挿入し、コレクション「demo690」を作成します。
> db.demo690.insertOne({_id:101,Name:"Sam"});
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo690.insertOne({_id:102,Name:"Mike"});
{ "acknowledged" : true, "insertedId" : 102 }
> db.demo690.insertOne({_id:103,Name:"John"});
{ "acknowledged" : true, "insertedId" : 103 }insertOne()は1件ずつドキュメントを挿入するメソッドで、実行するたびに挿入が成功したことを示す「acknowledged: true」と、割り当てられた「_id」が返されます。
2. find()メソッドでドキュメントを確認する
作成したコレクション内のすべてのドキュメントを表示するには、find()メソッドを使用します。
> db.demo690.find();
上記のクエリを実行すると、次のような出力が得られます。
{ "_id" : 101, "Name" : "Sam" }
{ "_id" : 102, "Name" : "Mike" }
{ "_id" : 103, "Name" : "John" }3件のドキュメントが正しく登録されていることが確認できました。
3. renameCollection()でコレクション名を変更する
それでは、いよいよコレクションの名前を変更します。renameCollection()の引数に新しいコレクション名を指定するだけで、名前を変更できます。
> db.demo690.renameCollection("demo691");
{ "ok" : 1 }戻り値として「ok: 1」が返されれば、名前の変更は成功です。これにより、「demo690」は「demo691」という名前に変わりました。
4. 変更後のコレクションを確認する
名前変更後のコレクションに対してfind()メソッドを実行し、ドキュメントがそのまま保持されているか確認してみましょう。
> db.demo691.find();
実行結果は次のとおりです。
{ "_id" : 101, "Name" : "Sam" }
{ "_id" : 102, "Name" : "Mike" }
{ "_id" : 103, "Name" : "John" }ご覧のとおり、コレクション名を変更しても、中身のドキュメントは一切失われることなく引き継がれます。
まとめ
MongoDBでコレクションの名前を変更するには、db.コレクション名.renameCollection("新しいコレクション名")を実行します。データを移し替えることなく即座にリネームできるため、非常に便利なメソッドです。ただし、同一データベース内でのみリネーム可能という点や、リネーム先と同名のコレクションが存在する場合はエラーになる点には注意が必要です。
-
MongoDBで「version」という名前のコレクションを作成・クエリする方法
MongoDBでは、createCollection() と getCollection() を使うことで、任意の名前のコレクションを明示的に作成し、操作することができます。ここでは、「version」という名前のコレクションを作成し、ドキュメントを挿入・取得する手順を紹介します。 1. 「version」コレクションを作成する まず、createCollection() メソッドを使って、「version」という名前のコレクションを明示的に作成します。 > db.createCollection(version); { ok : 1 } 2. ドキュメントを挿入する 次に、getC
-
MongoDBでコレクションから配列フィールド全体を削除するクエリの書き方
MongoDBで配列フィールドを完全に削除するにはMongoDBのコレクションから、ドキュメント内の配列フィールドそのもの(フィールドごと)を取り除きたい場合は、更新演算子の $unset を使用します。$unset は指定したフィールドをドキュメントから削除する演算子で、配列の中身だけを空にするのではなく、フィールド自体が存在しない状態にできます。ここでは、サンプルコレクションを作成して、実際に配列フィールドを削除する手順を見ていきましょう。1. サンプルコレクションの作成まず、insertOne() メソッドを使ってドキュメントを挿入し、テスト用のコレクション demo609 を作成します