sql >> Base de Datos >  >> NoSQL >> MongoDB

mongodb:insertar si no existe

Parece que quieres hacer un "upsert". MongoDB tiene soporte incorporado para esto. Pase un parámetro adicional a su llamada update():{upsert:true}. Por ejemplo:

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

Esto reemplaza su bloque if-find-else-update por completo. Se insertará si la clave no existe y se actualizará si existe.

Antes:

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

Después:

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

También puede especificar qué datos desea escribir:

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

Ahora su documento seleccionado actualizará el valor de "key2" solamente y dejará todo lo demás intacto.