MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongodb:insira se não existir


Parece que você quer fazer um "upsert". O MongoDB tem suporte embutido para isso. Passe um parâmetro extra para sua chamada update():{upsert:true}. Por exemplo:
key = {'key':'value'}
data = {'key2':'value2', 'key3':'value3'};
coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument

Isso substitui inteiramente o bloco if-find-else-update. Ele será inserido se a chave não existir e será atualizado se existir.

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

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

Você também pode especificar quais dados deseja gravar:
data = {"$set":{"key2":"value2"}}

Agora seu documento selecionado atualizará o valor de "key2" apenas e deixará todo o resto intocado.