MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara mengkloning koleksi dari satu MongoDB ke yang lain di server yang sama

Beberapa hal :

  1. Secara umum cloneCollection digunakan untuk instance mongo yang berbeda tetapi tidak untuk menyalin pada instance yang sama.
  2. Juga jika Anda menggunakan v4.2 anda harus berhenti menggunakan copyDB &cloneCollection karena mereka tidak digunakan lagi kompatibilitas-dengan-v4.2 &mulai gunakan mongodump dan mongorestore atau mongoexport &mongoimport .
  3. Saya akan menyarankan untuk menggunakan mongodump &mongorestore :

    1. Penyebab mongodump akan mempertahankan tipe data MongoDB yaitu; bson jenis.
    2. mongodump membuat biner di mana sebagai mongoexport akan mengonversi bson ke json &lagi mongoimport akan mengonversi json ke bson saat menulis, itulah sebabnya mereka lambat. Anda dapat menggunakan mongoexport &mongoimport ketika Anda ingin menganalisis data koleksi Anda secara visual atau menggunakan json data untuk tujuan lain.
  4. 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:

  1. mongodump--host "All-shards" -> Di sini Anda perlu menentukan semua pecahan jika MongoDB Anda adalah set replika, jika tidak, Anda dapat menentukan localhost:27017 .

  2. mongorestore --host=host-shard-name -> Anda harus menentukan satu pecahan set replika, jika tidak localhost , Beberapa hal di sini dapat menjadi --ssl opsional , --username , --password .

  3. 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 merujuk dbName dalam perintah restore &nama koleksi akan diambil dari variabel i -> ./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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Objek koleksi bukan kesalahan yang dapat dipanggil dengan PyMongo

  2. node js mongodb hapus kunci kesalahan $lte tidak boleh dimulai dengan '$'

  3. Transaksi 1 telah dilakukan di MongoDB

  4. String Koneksi di MongoDB (dengan contoh)

  5. Probabilitas tabrakan ObjectId vs UUID dalam sistem terdistribusi besar