ここでのゲームにはかなり遅れていますが、FWIW、MongoEngineにはこのためのソリューションが組み込まれています。
create
するかどうかは関係ありません またはupdate
次のことができます:
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()
update
の違いのみ id
に固執する必要がありますか 。そうすれば、mongoengineは既存のid
でドキュメントを複製しません 代わりに更新してください。