MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

mongodb:inserisci se non esiste

Sembra che tu voglia fare un "upsert". MongoDB ha il supporto integrato per questo. Passa un parametro extra alla tua chiamata update():{upsert:true}. Ad esempio:

key = {'key':'value'}
data = {'key2':'value2', 'key3':'value3'};
coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument

Questo sostituisce completamente il blocco if-find-else-update. Si inserirà se la chiave non esiste e si aggiornerà se esiste.

Prima:

{"key":"value", "key2":"Ohai."}

Dopo:

{"key":"value", "key2":"value2", "key3":"value3"}

Puoi anche specificare quali dati vuoi scrivere:

data = {"$set":{"key2":"value2"}}

Ora il documento selezionato aggiornerà solo il valore di "key2" e lascerà inalterato tutto il resto.