以前のバージョンのMongoDBでは、copyDBを使用できました。 コマンドまたはそのヘルパーメソッド、db.copyDatabase() データベースをコピーします。
その後、MongoDBはこれらを非推奨にしました。また、バージョン4.2以降、MongoDBはcopydbを削除しました。 コマンド、したがってdb.copyDatabase() メソッド。つまり、MongoDB 4.2以降を使用している場合は、使用したい場合でも使用できません。
幸い、MongoDBデータベースをコピーする別の方法があります。
MongoDBデータベースツールを確認する
MongoDBでは、MongoDBデータベースツールを使用してデータベースのクローンを作成できます。具体的には、mongodumpを使用できます およびmongorestore 。
MongoDBデータベースツールは、MongoDBを操作するためのコマンドラインユーティリティのスイートです。
MongoDBデータベースツールがインストールされているかどうかわからない場合は、ターミナルまたはコマンドプロンプトで次のコマンドを実行して確認してください。
mongodump --version
mongorestore --version
これは特にmongodumpをチェックします およびmongorestore バージョン。
それらがない場合は、MongoDB Webサイトにあるインストール手順を使用して、MongoDBデータベースツールをシステムにインストールできます。
データベースのクローン作成の例
mongodumpを実行する必要があります およびmongorestore システムのコマンドラインから(たとえば、新しいターミナルまたはコマンドプロンプトウィンドウ)。 mongoから実行しないでください シェル。
データベースのクローンを作成するコードの例を次に示します。
mongodump --archive --db=PetHotel | mongorestore --archive --nsFrom='PetHotel.*' --nsTo='PetHouse.*'
この場合、PetHotelをバックアップします データベースを作成し、そのすべてのコレクションをPetHouseというデータベースに復元します。 。つまり、PetHotelのクローンを作成しました PetHouseとしてのデータベース 。
これはmongodumpを使用します データベースのバックアップファイルを作成するには、mongorestore そのデータベースを別の名前で復元します。これを行うには、データベースを標準の出力ストリームにダンプし、mongorestoreにパイプします。 。
各パラメータの機能は次のとおりです。
| パラメータ | 説明 |
|---|---|
--archive | 出力を指定されたアーカイブファイルに書き込みます。アーカイブファイルが指定されていない場合は、標準出力(stdout)に書き込みます。 )。この場合、アーカイブファイルは指定されていないため、標準出力に書き込まれます。 |
--db | バックアップするデータベースを指定します。この場合、PetHotelをバックアップします データベース。 |
--nsFrom | ダンプファイル内のコレクションを指定します。アスタリスクのワイルドカード(* )すべてのコレクションを指定します。 |
--nsTo | 復元されたデータベースで使用されるコレクション名を指定します。 |
mongodumpを使用することもできます すべてのデータベースをダンプします。これを行うには、mongodumpを実行するだけです。 引数なし。ただし、その場合、localは含まれません。 およびconfig ダンプ内のデータベース。