sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb:infoga om det inte finns

Låter som att du vill göra en "upsert". MongoDB har inbyggt stöd för detta. Skicka en extra parameter till ditt update()-anrop:{upsert:true}. Till exempel:

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

Detta ersätter ditt if-find-else-update-block helt. Den infogas om nyckeln inte finns och uppdateras om den gör det.

Före:

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

Efter:

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

Du kan också ange vilken data du vill skriva:

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

Nu uppdaterar ditt valda dokument endast värdet på "key2" och lämnar allt annat orört.



  1. tar gzip mongo dump som MySQL

  2. Lyssna efter ändringar i redis-listan

  3. MongoDB $sinh

  4. Bygga mongo-cxx-drivrutin med CMake ExternalProject_Add