Klingt so, als wollten Sie einen "Upsert" machen. MongoDB hat hierfür eine integrierte Unterstützung. Übergeben Sie einen zusätzlichen Parameter an Ihren update()-Aufruf:{upsert:true}. Zum Beispiel:
key = {'key':'value'}
data = {'key2':'value2', 'key3':'value3'};
coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument
Dies ersetzt Ihren if-find-else-update-Block vollständig. Es wird eingefügt, wenn der Schlüssel nicht existiert, und wird aktualisiert, wenn er vorhanden ist.
Vorher:
{"key":"value", "key2":"Ohai."}
Nachher:
{"key":"value", "key2":"value2", "key3":"value3"}
Sie können auch angeben, welche Daten Sie schreiben möchten:
data = {"$set":{"key2":"value2"}}
Jetzt aktualisiert Ihr ausgewähltes Dokument nur den Wert von "key2" und lässt alles andere unberührt.