Kedengarannya seperti Anda ingin melakukan "upsert". MongoDB memiliki dukungan bawaan untuk ini. Berikan parameter tambahan ke panggilan update() Anda:{upsert:true}. Misalnya:
key = {'key':'value'}
data = {'key2':'value2', 'key3':'value3'};
coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument
Ini menggantikan blok if-find-else-update Anda sepenuhnya. Ini akan dimasukkan jika kunci tidak ada dan akan diperbarui jika ada.
Sebelumnya:
{"key":"value", "key2":"Ohai."}
Setelah:
{"key":"value", "key2":"value2", "key3":"value3"}
Anda juga dapat menentukan data apa yang ingin Anda tulis:
data = {"$set":{"key2":"value2"}}
Sekarang dokumen yang Anda pilih akan memperbarui nilai "key2" saja dan membiarkan yang lainnya tidak tersentuh.