sql >> Databáze >  >> NoSQL >> MongoDB

mongodb:vložte, pokud neexistuje

Zní to, jako byste chtěli udělat "upsert". MongoDB má pro to vestavěnou podporu. Předejte svému volání update() další parametr:{upsert:true}. Například:

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

To zcela nahradí váš blok if-find-else-update. Vloží se, pokud klíč neexistuje, a aktualizuje se, pokud existuje.

Před:

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

Po:

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

Můžete také určit, jaká data chcete zapisovat:

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

Nyní váš vybraný dokument aktualizuje pouze hodnotu "key2" a vše ostatní ponechá beze změny.



  1. Chyba přetypování JSON.NET při serializaci Mongo ObjectId

  2. Klonovat databázi v Mongodb mezi hostiteli pomocí ovladače uzlu

  3. Mongoose vnořené dokumenty vs vnořené schéma

  4. MongoDB $objectToArray