Vrij laat in het spel hier, maar FWIW, MongoEngine heeft hier een ingebouwde oplossing voor.
Ongeacht of je wilt create
of update
u kunt het volgende doen:
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()
Enige verschil voor update
moet je een id
invoeren . Op die manier zal mongoengine geen document dupliceren met een bestaande id
en update het in plaats daarvan.