Perbarui dengan upsert=true
dapat digunakan untuk melakukan "insert or update" atom (http://docs.mongodb.org/manual/core/update/#update-operations-with-the-upsert-flag
).
Misalnya jika kita ingin memastikan sebuah dokumen di koleksi Front dengan url
tertentu dimasukkan tepat sekali, kita dapat menjalankan sesuatu seperti:
db.Front.update(
{url: 'http://example.com'},
{$set: {
url: 'http://example.com'},
found: true
}
)
Operasi pada satu dokumen di MongoDB selalu atomik. Jika Anda membuat pembaruan yang mencakup banyak dokumen, maka tidak ada atomisitas yang dijamin. Dalam kasus seperti itu, Anda dapat bertanya pada diri sendiri:apakah saya benar-benar membutuhkan operasi yang atomik? Jika jawabannya tidak, maka Anda mungkin akan menemukan cara untuk bekerja dengan data yang berpotensi tidak konsisten. Jika jawabannya ya dan Anda ingin tetap menggunakan MongoDB, lihat pola desain di Komit Dua Fase .