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

Bagaimana cara mengimpor hanya dokumen yang tidak ada?

Perilaku default mongoimport tidak boleh menimpa dokumen yang ada:Di shell JS, saya membuat dokumen di koleksi "testimport"

> db.testimport.save({_id:1, x:"a"})
> db.testimport.find()
{ "_id" : 1, "x" : "a" }
> 

Berikut adalah isi dari file import.json. Ini berisi 2 dokumen, satu dengan _id unik, dan satu lagi dengan _id duplikat.

import.json
{_id:1, x:"b"}
{_id:2, x:"b"}

Di jendela terminal baru, mongoimport dijalankan:

$ ./mongoimport -d test -c testimport import.json -vvvvv 
Wed Apr  4 19:03:48 creating new connection to:127.0.0.1
Wed Apr  4 19:03:48 BackgroundJob starting: ConnectBG
Wed Apr  4 19:03:48 connected connection!
connected to: 127.0.0.1
Wed Apr  4 19:03:48 ns: test.testimport
Wed Apr  4 19:03:48 filesize: 29
Wed Apr  4 19:03:48 got line:{_id:1, x:"b"}
Wed Apr  4 19:03:48 got line:{_id:2, x:"b"}
imported 2 objects
$

Meskipun output mongoimport mengatakan bahwa dua objek telah diimpor, dokumen dengan _id:1 belum ditimpa.

> db.testimport.find()
{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "b" }
>

Jika flag --upsert digunakan, maka dokumen dengan _id:1 akan diperbarui:

$ ./mongoimport -d test -c testimport import.json -vvvvv --upsert
Wed Apr  4 19:14:26 creating new connection to:127.0.0.1
Wed Apr  4 19:14:26 BackgroundJob starting: ConnectBG
Wed Apr  4 19:14:26 connected connection!
connected to: 127.0.0.1
Wed Apr  4 19:14:26 ns: test.testimport
Wed Apr  4 19:14:26 filesize: 29
Wed Apr  4 19:14:26 got line:{_id:1, x:"b"}
Wed Apr  4 19:14:26 got line:{_id:2, x:"b"}
imported 2 objects
$

Di shell JS, kita dapat melihat bahwa dokumen dengan _id:1 telah diperbarui:

> db.testimport.find()
{ "_id" : 1, "x" : "b" }
{ "_id" : 2, "x" : "b" }
>

Bukankah ini perilaku yang Anda alami? Di atas diuji dengan versi 2.1.1-pre, tetapi saya tidak percaya bahwa kode mongoimport telah berubah untuk sementara waktu.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. agregasi mongoDB kembali kosong

  2. Mongodb memasukkan dokumen tanpa bidang _id

  3. Sistem pemungutan suara dengan Backbone.js

  4. Bagaimana cara menyimpan dokumen dalam agregasi dengan $unwind

  5. Menanyakan elemen array dengan Mongo