いくつかのこと:
- 一般的に、 cloneCollection 異なるmongoインスタンスに使用されますが、同じインスタンスにコピーすることはできません。
-
v4.2
を使用している場合もcopyDB
の使用をやめる必要があります &cloneCollection
非推奨になっているためv4.2との互換性 &mongodump の使用を開始します および mongorestore または mongoexport & mongoimport 。 -
mongodumpを使用することをお勧めします & mongorestore :
- 原因mongodump MongoDBのデータ型を保持します。
bson
タイプ。 - mongodump mongoexportとしてバイナリを作成します
bson
を変換しますjson
へ &再び mongoimportjson
を変換しますbson
へ 書いている間、それが彼らが遅い理由です。コレクションデータを視覚的に分析する場合、またはjson
を使用する場合は、mongoexportとmongoimportを使用できます。 その他の目的のデータ。
- 原因mongodump MongoDBのデータ型を保持します。
-
以下のスクリプトをシェルで実行できます
declare - a collections = ("collectionName1" "collectionName2") for i in "${collections[@]}" do echo "$i" mongodump --host "All-shards" --username=uname --password password --ssl --authenticationDatabase admin --db dbname --collection "$i" mongorestore --host=host-shard-name --port=27017 --username=uname --password=psswrd --ssl --authenticationDatabase=admin --db=dbname --collection= "$i" ./dump/dbName/"$i".bson; done
mongodumpを使用するには 、実行中のmongodまたはmongosインスタンスに対してmongodumpを実行する必要があります。したがって、これらのコマンドは、mongoが正しくインストールされ、パスの設定が適切であることを期待して実行されています。そうでない場合は、mongoフォルダーに移動して、 ./ mongodump
のように実行できます。 & ./ mongorestore
。上記のスクリプトは、複数のコレクションをバックアップする場合に役立ちます。スクリプトで次のようないくつかのことを指定する必要があります:
-
mongodump--host "All-shards"
->ここで、MongoDBがレプリカセットの場合はすべてのシャードを指定する必要があります。そうでない場合は、localhost:27017
を指定できます。 。 -
mongorestore --host =host-shard-name
->レプリカセットのシャードを1つ指定する必要があります。指定しない場合は、localhost
、ここでオプションとなるものはほとんどありません-ssl
、-ユーザー名
、-パスワードコード> 。
- つまりmongodump dumpという名前のフォルダを作成します 初めてdbNamesのサブフォルダーがあり、各サブフォルダーには
bson
があります ダンプされたコレクション名に対応するファイルなので、dbName
を参照する必要があります 復元コマンドとコレクション名は変数i
から取得されます ->./ dump / dbName / "$ i" .bson
注: MongoDB v3.2
非常に古く、クラウドベースのMongoDBサービス Mongo-atlas
すでにライフサイクルの終わりに達しているので、できるだけ早くアップグレードしてください。無料のmongoインスタンスを探している場合、またはMongoDBから始めている場合は、アトラスを試すことができます。