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

Atualizar um documento MongoEngine usando um dict python?


Muito tarde para o jogo aqui, mas FWIW, MongoEngine tem uma solução para isso.

Independentemente se você deseja create ou update você pode fazer o seguinte:
class Pets(EmbeddedDocument):
    name = StringField()

class Person(Document):
    name = StringField()
    address = StringField()
    pets = ListField(EmbeddedDocumentField(Pets))

p = Person(**{
    "name": "Hank",
    "address": "Far away",
    "pets": [{"name": "Scooter"}]
})
p.save()

Única diferença para update é que você precisa ficar em um id . Dessa forma, o mongoengine não duplicará um documento com um id existente e atualizá-lo em vez disso.