sql >> Database >  >> NoSQL >> MongoDB

mongodb:invoegen indien niet bestaat

Het klinkt alsof je een "upsert" wilt doen. MongoDB heeft hiervoor ingebouwde ondersteuning. Geef een extra parameter door aan je update()-aanroep:{upsert:true}. Bijvoorbeeld:

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

Dit vervangt uw if-find-else-update-blok volledig. Het wordt ingevoegd als de sleutel niet bestaat en wordt bijgewerkt als dat wel het geval is.

Voor:

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

Na:

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

U kunt ook aangeven welke gegevens u wilt schrijven:

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

Nu zal uw geselecteerde document alleen de waarde van "key2" bijwerken en al het andere onaangeroerd laten.



  1. Hoe de collectienaam in mongoose.model wijzigen?

  2. Belangrijkste dingen om te controleren in MongoDB

  3. NoSQL (MongoDB) vs Lucene (of Solr) als uw database

  4. Aangepaste deserialisatie