Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 同时使用Mapfield和DynamicBeddedDocument时出现InvalidDocument错误_Python_Mongodb_Mongoengine_Graphene Python - Fatal编程技术网

Python 同时使用Mapfield和DynamicBeddedDocument时出现InvalidDocument错误

Python 同时使用Mapfield和DynamicBeddedDocument时出现InvalidDocument错误,python,mongodb,mongoengine,graphene-python,Python,Mongodb,Mongoengine,Graphene Python,我有一个mongo模式数据: { "key_1":{"internal_k1":"internal_v1","internal_k2":"internal_v2"}, "key_2":{"internal_k3":"internal_v3","internal_k4":"internal_v4"}, } 以及一款mongoengine车型: 第一类(DynamicBeddedDocument): 内部_k1=StringField() 内部_k2=StringField() 第二类(Dynam

我有一个mongo模式数据:

{
"key_1":{"internal_k1":"internal_v1","internal_k2":"internal_v2"},
"key_2":{"internal_k3":"internal_v3","internal_k4":"internal_v4"},
}
以及一款mongoengine车型:

第一类(DynamicBeddedDocument):
内部_k1=StringField()
内部_k2=StringField()
第二类(DynamicBeddedDocument):
内部_k3=StringField()
内部_k4=StringField()
课堂测试(文件):
key_1=MapField(EmbeddedDocumentField(一个))
键2=映射字段(嵌入文档字段(两个))
我之所以包含DynamicBeddedDocument,是因为键1和键2可以有额外的动态字段

我正在手动插入数据: 当使用模型加载数据时,它抛出如下错误

mongoengine.errors.InvalidDocumentError:用于创建<代码>测试实例的无效数据

我使用mongoengine作为python库


我需要一个正确的模型来支持此数据结构。

据我所见,您不需要将EmbeddedDocumentField包装在MapField中,请尝试以下操作:

class ONE(DynamicEmbeddedDocument):
   internal_k1 = StringField()
   internal_k2 = StringField()

class TWO(DynamicEmbeddedDocument):
   internal_k3 = StringField()
   internal_k4 = StringField()

class Test(Document):
   key_1 = EmbeddedDocumentField(ONE)
   key_2 = EmbeddedDocumentField(TWO)