gpt4 book ai didi

python - 一起使用 Mapfield 和 DynamicEmbeddedDocument 时出现 InvalidDocumentError

转载 作者:可可西里 更新时间:2023-11-01 10:45:05 24 4
gpt4 key购买 nike

我有一个 mongo 模式数据:

{
"key_1":{"internal_k1":"internal_v1","internal_k2":"internal_v2"},
"key_2":{"internal_k3":"internal_v3","internal_k4":"internal_v4"},
}

和一个 mongoengine 模型:

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

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

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

我包含了 DynamicEmbeddedDocument,因为 key_1 和 key_2 可以有额外的动态字段。

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

mongoengine.errors.InvalidDocumentError:创建 Test 实例的无效数据。

我正在使用 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)

关于python - 一起使用 Mapfield 和 DynamicEmbeddedDocument 时出现 InvalidDocumentError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56579345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com