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

atom MongoDB findOrCreate:findOne, masukkan jika tidak ada, tetapi jangan perbarui

Dimulai dengan MongoDB 2.4, tidak perlu lagi bergantung pada indeks unik (atau solusi lainnya) untuk atom findOrCreate seperti operasi.

Ini berkat $setOnInsert operator new to 2.4, yang memungkinkan Anda menentukan pembaruan yang seharusnya hanya terjadi saat memasukkan dokumen.

Ini, dikombinasikan dengan upsert opsi, berarti Anda dapat menggunakan findAndModify untuk mencapai findOrCreate atomic atomik -seperti operasi.

db.collection.findAndModify({
  query: { _id: "some potentially existing id" },
  update: {
    $setOnInsert: { foo: "bar" }
  },
  new: true,   // return new doc if one is upserted
  upsert: true // insert the document if it does not exist
})

Sebagai $setOnInsert hanya mempengaruhi dokumen yang dimasukkan, jika dokumen yang ada ditemukan, tidak akan terjadi modifikasi. Jika tidak ada dokumen, itu akan memasukkan satu dengan _id yang ditentukan, kemudian melakukan set penyisipan saja. Dalam kedua kasus, dokumen dikembalikan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gunakan $gte dan <e operator mongo jika tanggal dalam format string di mongodb

  2. Dokumen Duplikat MongoDB bahkan setelah menambahkan kunci unik

  3. MongoDB aktif dengan Docker gagal terhubung ke server [localhost:27017] pada koneksi pertama

  4. Keamanan Pre-Emptive dengan Audit Logging untuk MongoDB

  5. Menggunakan generator Rekaman Aktif setelah instalasi Mongoid?