MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb:einfügen, falls nicht vorhanden

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.