MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mettre à jour un document MongoEngine à l'aide d'un dict python ?

Assez tard dans le jeu ici, mais FWIW, MongoEngine a une solution intégrée pour cela.

Peu importe si vous voulez create ou update vous pouvez faire ce qui suit :

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

Seule différence pour update est-ce que vous devez coller un id . De cette façon, mongoengine ne dupliquera pas un document avec un id existant et mettez-le à jour à la place.