Beberapa hal :
- Secara umum cloneCollection digunakan untuk instance mongo yang berbeda tetapi tidak untuk menyalin pada instance yang sama.
- Juga jika Anda menggunakan
v4.2anda harus berhenti menggunakancopyDB&cloneCollectionkarena 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;
bsonjenis. - mongodump membuat biner di mana sebagai mongoexport akan mengonversi
bsonkejson&lagi mongoimport akan mengonversijsonkebsonsaat menulis, itulah sebabnya mereka lambat. Anda dapat menggunakan mongoexport &mongoimport ketika Anda ingin menganalisis data koleksi Anda secara visual atau menggunakanjsondata 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--sslopsional ,--username,--password. - Jadi mongodump akan membuat folder bernama dump untuk pertama kalinya yang akan memiliki sub-folder dengan dbNames &setiap sub-folder akan memiliki
bsonfile masing-masing ke nama koleksinya dibuang, Jadi Anda perlu merujukdbNamedalam 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.