sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Actualizar un documento de MongoEngine usando un dictado de python?

Bastante tarde para el juego aquí, pero FWIW, MongoEngine tiene una solución integrada para esto.

Independientemente de si desea create o update puedes hacer lo siguiente:

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()

Solo diferencia para update es necesario pegar en un id . De esa manera mongoengine no duplicará un documento con un id existente y actualícelo en su lugar.