带有mongoengine的ListField(DictField())

时间:2014-08-11 10:11:20

标签: mongodb python-2.7 mongoengine

如何使用mongoengine ListField(DictField())并访问它,因为下面的代码不起作用?

from mongoengine import *

class Test():
    g = ListField(DictField(Mapping.build(
    test1=StringField(required=True),
    test2=StringField(required=True)
)))

2 个答案:

答案 0 :(得分:4)

尝试使用此格式

class classEmbed:
     t = StringField()
     p = StringField()

class Test:
     g = ListField(EmbeddedDocumentField(classEmbed))

答案 1 :(得分:4)

我认识到这篇文章很老了,但是对于任何发现这个帖子开始使用mongoengine的人来说。为了改进Niranj的答案,现在存在EmbeddedDocumentListField,您需要从这些类中的EmbeddedDocumentDocument继承。

class classEmbed(EmbeddedDocument):
    t = StringField()
    p = StringField()

class Test(Document):
    g = EmbeddedDocumentListField(classEmbed)

文档在“字段

”下为here