Ziemlich spät zum Spiel hier, aber FWIW, MongoEngine hat eine eingebaute Lösung dafür.
Unabhängig davon, ob Sie create
möchten oder update
Sie können Folgendes tun:
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()
Einziger Unterschied für update
müssen Sie eine id
einfügen . Auf diese Weise dupliziert Mongoengine kein Dokument mit einer vorhandenen id
und aktualisiere es stattdessen.