On dirait que vous voulez faire un "upsert". MongoDB a un support intégré pour cela. Passez un paramètre supplémentaire à votre appel update() :{upsert:true}. Par exemple :
key = {'key':'value'}
data = {'key2':'value2', 'key3':'value3'};
coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument
Cela remplace entièrement votre bloc if-find-else-update. Il sera inséré si la clé n'existe pas et sera mis à jour si c'est le cas.
Avant :
{"key":"value", "key2":"Ohai."}
Après :
{"key":"value", "key2":"value2", "key3":"value3"}
Vous pouvez également spécifier les données que vous souhaitez écrire :
data = {"$set":{"key2":"value2"}}
Maintenant, votre document sélectionné mettra à jour la valeur de "key2" uniquement et laissera tout le reste intact.