以前のバージョンの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
ダンプ内のデータベース。