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

Cara Mengganti Dokumen yang Ada Saat Mengimpor File ke MongoDB

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

Maksud saya, jika dokumen yang diimpor memiliki _id yang sama nilai sebagai yang sudah ada dalam koleksi yang Anda impor, dokumen yang ada akan diganti dengan yang sedang diimpor.

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

Cara mengganti dokumen yang ada saat menggunakan mongoimport adalah menggunakan upsert modus.

Contoh

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

db.pets.find()

Hasil:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }

Dan kami memiliki file JSON berikut bernama pets.json :

{"_id":2,"name":"Fetch","type":"Dog"}
{"_id":3,"name":"Scratch","type":"Cat","weight":10}
{"_id":4,"name":"Hop","type":"Kangaroo","weight":60}

Perintah berikut mengimpor file JSON ke dalam koleksi:

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

Ini menggunakan upsert mode untuk mengganti dokumen yang cocok dengan yang diimpor.

Periksa Hasil

Yuk intip koleksinya sekarang.

db.pets.find()

Hasil:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Fetch", "type" : "Dog" }
{ "_id" : 3, "name" : "Scratch", "type" : "Cat", "weight" : 10 }
{ "_id" : 4, "name" : "Hop", "type" : "Kangaroo", "weight" : 60 }

Kita dapat melihat bahwa dokumen 2 telah sepenuhnya diganti. Anjing Bark telah diganti dengan anjing Fetch , dan tidak ada bobot yang dicatat untuk Fetch .

Dokumen 3 juga telah diganti, dan dokumen 4 adalah dokumen yang sama sekali baru.

Ubah Bidang Bagian Atas

Anda dapat menggunakan --upsertFields parameter untuk menentukan bidang selain _id yang harus dicocokkan. 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":"Fetch","type":"Dog","weight":20,"gooddog":true}
{"name":"Scratch","type":"Cat","weight":15}
{"name":"Bubbles","type":"Fish"}

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=upsert --upsertFields=name,type --file=data/pets2.json

Sekarang mari kita periksa kembali koleksinya:

db.pets.find()

Hasil:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Fetch", "type" : "Dog", "weight" : 20, "gooddog" : true }
{ "_id" : 3, "name" : "Scratch", "type" : "Cat", "weight" : 15 }
{ "_id" : 4, "name" : "Hop", "type" : "Kangaroo", "weight" : 60 }
{ "_id" : ObjectId("5ff00800d99141016941217c"), "name" : "Bubbles", "type" : "Fish" }

Kita dapat melihat bahwa Fetch telah diperbarui/diganti (tetapi _id nilainya tetap sama). Begitu juga dengan Scratch.

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. Tidak dapat mengautentikasi di mongodb dengan PHP

  2. Wildcard MongoDB di kunci kueri

  3. Bagaimana cara memulai Shell mongodb dalam wadah buruh pelabuhan?

  4. Bagaimana cara mengekspor koleksi ke CSV di MongoDB?

  5. MySQL ke MongoDB - Lembar Cheat Admin