Jangan gunakan sisipan.
Gunakan pembaruan dengan upsert=true
. Update akan mencari dokumen yang cocok dengan kueri Anda, kemudian akan mengubah bidang yang Anda inginkan dan kemudian, Anda dapat memberitahukannya secara terbalik:Benar jika Anda ingin menyisipkan jika tidak ada dokumen yang cocok dengan kueri Anda.
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
Jadi, untuk contoh Anda, Anda bisa menggunakan sesuatu seperti ini:
db.collection.update(doc, doc, {upsert:true})