Beberapa hal :
- Secara umum cloneCollection digunakan untuk instance mongo yang berbeda tetapi tidak untuk menyalin pada instance yang sama.
- Juga jika Anda menggunakan
v4.2
anda harus berhenti menggunakancopyDB
&cloneCollection
karena mereka tidak digunakan lagi kompatibilitas-dengan-v4.2 &mulai gunakan mongodump dan mongorestore atau mongoexport &mongoimport . -
Saya akan menyarankan untuk menggunakan mongodump &mongorestore :
- Penyebab mongodump akan mempertahankan tipe data MongoDB yaitu;
bson
jenis. - mongodump membuat biner di mana sebagai mongoexport akan mengonversi
bson
kejson
&lagi mongoimport akan mengonversijson
kebson
saat menulis, itulah sebabnya mereka lambat. Anda dapat menggunakan mongoexport &mongoimport ketika Anda ingin menganalisis data koleksi Anda secara visual atau menggunakanjson
data untuk tujuan lain.
- Penyebab mongodump akan mempertahankan tipe data MongoDB yaitu;
-
Anda dapat menjalankan skrip di bawah ini di shell
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
Untuk menggunakan mongodump , Anda harus menjalankan mongodump terhadap instance mongod atau mongos yang sedang berjalan. Jadi perintah ini dijalankan dengan harapan mongo diinstal dengan benar &pengaturan jalur bagus, jika tidak, Anda dapat menavigasi ke folder mongo &menjalankan seperti ./mongodump
&./mongorestore
. Skrip di atas akan berguna jika Anda ingin membuat cadangan beberapa koleksi, Anda perlu menentukan beberapa hal dalam skrip seperti:
-
mongodump--host "All-shards"
-> Di sini Anda perlu menentukan semua pecahan jika MongoDB Anda adalah set replika, jika tidak, Anda dapat menentukanlocalhost:27017
. -
mongorestore --host=host-shard-name
-> Anda harus menentukan satu pecahan set replika, jika tidaklocalhost
, Beberapa hal di sini dapat menjadi--ssl
opsional ,--username
,--password
. - Jadi mongodump akan membuat folder bernama dump untuk pertama kalinya yang akan memiliki sub-folder dengan dbNames &setiap sub-folder akan memiliki
bson
file masing-masing ke nama koleksinya dibuang, Jadi Anda perlu merujukdbName
dalam perintah restore &nama koleksi akan diambil dari variabeli
->./dump/dbName/"$i".bson
Catatan : MongoDB v3.2
sudah sangat tua &dalam layanan MongoDB berbasis cloud Mongo-atlas
itu telah mencapai akhir siklus hidupnya, jadi harap perbarui secepatnya. Jika Anda mencari instance mongo gratis atau memulai dengan MongoDB - Anda dapat mencoba atlas.