我试图找到一种优雅的方式来更新现有的 MongoDB 文档,其中包含从网页接收到的数据作为 json。问题是我事先不知道要更新哪些字段 - 所以我不能使用set__field,我的 MongoDB 文档中只有要更新的字段的 json 表示。另外,我正在使用 DynamicDocuments,因此可能需要在文档上设置新字段。例如:
class Study(DynamicDocument):
study_accession_nr = StringField()
study_name = StringField()
study_type = StringField()
并且 json 可能看起来像 - 例如:
{"_id" : "123", "study_name" : "Statistics"}
或者
{"_id" : "123", "study_type" : "research", "study_name" : "Statistical analysis"}
我可以从控制台轻松完成,或者使用 pymongo,但我不知道如何使用 Mongoengine 执行此操作,除非我手动 setattr(myDocInstance, nameOfField, val),这对我来说看起来并不那么优雅。谢谢!