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

Cara Menggabungkan Dokumen saat Mengimpor File ke MongoDB

Saat Anda menggunakan mongoimport untuk mengimpor file ke MongoDB, Anda memiliki opsi untuk menggabungkan dokumen yang ada dengan dokumen yang Anda impor.

Dalam hal ini, jika dokumen yang diimpor memiliki _id yang sama nilai sebagai yang sudah ada dalam koleksi yang Anda impor, dokumen yang ada akan digabungkan dengan yang sedang diimpor.

Anda juga dapat menentukan bidang lain (selain _id bidang) menjadi bidang yang cocok jika diperlukan.

Saat Anda menggabungkan dokumen, dokumen yang dihasilkan akan menggabungkan data yang ada dengan data baru apa pun yang ada di file yang diimpor. Setiap data yang sama akan tetap sama. Setiap data yang bertentangan akan mengakibatkan data file yang diimpor menimpa data yang ada. Jika dokumen yang diimpor tidak berisi bidang yang ada di dokumen terkait dalam koleksi MongoDB, maka bidang itu akan tetap tidak berubah dalam koleksi (yaitu, tidak akan dihapus atau diubah).

Cara menggabungkan dokumen dengan mongoimport adalah menggunakan merge modus.

Contoh

Misalkan kita memiliki koleksi yang disebut pets yang berisi dokumen-dokumen berikut:

db.pets.find() 

Hasil:

{ "_id" :1, "name" :"Wag", "type" :"Anjing" }{ "_id" :2, "name" :"Bark", "type" :"Anjing" }{ "_id" :3, "name" :"Meow", "type" :"Cat" }

Dan kami memiliki file JSON berikut bernama pets.json :

{"_id":2.0,"name":"Fetch","type":"Dog","weight":40.0}{"_id":3.0,"weight":10.0}{"_id":4.0,"name":"Hop","type":"Kangaroo","weight":60.0}

Perintah berikut mengimpor file JSON ke dalam koleksi:

mongoimport --db=PetHotel --collection=pets --mode=merge --file=data/pets.json 

Ini menggunakan merge mode untuk menggabungkan dokumen yang cocok dengan yang diimpor.

Periksa Hasil

Yuk intip koleksinya sekarang.

db.pets.find() 

Hasil:

{ "_id" :1, "name" :"Wag", "type" :"Anjing" }{ "_id" :2, "name" :"Ambil", "type" :"Anjing", " weight" :40 }{ "_id" :3, "name" :"Meow", "type" :"Cat", "weight" :10 }{ "_id" :4, "name" :"Hop", " type" :"Kanguru", "berat" :60 }

Kita dapat melihat bahwa dokumen 1 tidak berubah, dokumen 2 telah diubah namanya menjadi Fetch , dan juga memiliki weight bidang ditambahkan.. Dokumen 3 juga memiliki bidang bobot yang ditambahkan, dan dokumen 4 telah dimasukkan.

Ubah Bidang Bagian Atas

Anda dapat menggunakan --upsertFields parameter untuk menentukan bidang selain _id untuk mencocokkan. Saat menggunakan parameter ini, berikan kolom sebagai daftar yang dipisahkan koma.

Misalkan kita memiliki file JSON lain bernama pets2.json yang ingin kita impor, dan tampilannya seperti ini:

{"name":"Wag","type":"Dog","weight":20.0,"gooddog":true}{"name":"Bubbles","type":"Ikan"} 

Dokumen ini tidak menyertakan _id bidang, jadi kami harus mencocokkan bidang lain yang secara unik mengidentifikasi setiap dokumen. Dalam hal ini kita bisa menggunakan name dan type bidang.

Oleh karena itu, kita dapat menggunakan mongoimport berikut ini:perintah:

mongoimport --db=PetHotel --collection=pets --mode=merge --upsertFields=name,type --file=data/pets2.json 

Sekarang mari kita periksa kembali koleksinya:

db.pets.find() 

Hasil:

{ "_id" :1, "name" :"Wag", "type" :"Dog", "gooddog" :true, "weight" :20 }{ "_id" :2, "name" :" Fetch", "type" :"Anjing", "weight" :40 }{ "_id" :3, "name" :"Meow", "type" :"Cat", "weight" :10 }{ "_id" :4, "name" :"Hop", "type" :"Kangaroo", "weight" :60 }{ "_id" :ObjectId("5ff0548dd991410169412300"), "name" :"Bubbles", "type" :" Ikan" }

Kita dapat melihat bahwa Wag telah diperbarui (tetapi _id nilainya tetap sama).

Gelembung di sisi lain, tidak cocok untuk bidang upsert dan oleh karena itu dimasukkan.

Periksa mongoimport

mongoimport adalah bagian dari paket Alat Database MongoDB. Alat Database MongoDB adalah rangkaian utilitas baris perintah untuk bekerja dengan MongoDB.

Jika Anda tidak yakin apakah Anda memiliki MongoDB Database Tools/mongoimport terinstal, coba jalankan perintah berikut di Terminal atau Command Prompt Anda untuk memeriksa:

mongoimport --version 

Jika Anda memilikinya, Anda akan melihat informasi versi, dll. Jika Anda tidak memilikinya, Anda dapat menggunakan petunjuk penginstalan di situs web MongoDB untuk menginstalnya ke sistem Anda.

Di mana Menjalankan Perintah?

Jangan lupa, Anda harus menjalankan mongoimport perintah dari baris perintah sistem Anda (mis. Terminal baru atau jendela Prompt Perintah).

Jangan jalankan dari mongo kerang.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Solusi MongoDB untuk dokumen di atas ukuran 16mb?

  2. MongoDB - Agregasi - Untuk mendapatkan item unik dalam array

  3. Menggabungkan nilai string dalam array dalam satu bidang di MongoDB

  4. cara memanggil operasi hitungan setelah menemukan dengan driver java mongodb

  5. Cara Menginstal MongoDB 4.2 pada sistem RedHat/ CentOS 7