Python mongoengine中的OrderedDict字段

Python mongoengine中的OrderedDict字段,python,django,mongodb,dictionary,mongoengine,Python,Django,Mongodb,Dictionary,Mongoengine,我正在使用mongoengine和Django作为我的网站 我在我的mongoengine中导入了一些文章,它有一个字段text,这是一个有序的dict,章节名称作为键,章节内容作为值,如下所示: {"text":{ "Introduction":"...", "Algorithm":"...", "Conclusion":"...", "References":"..."} } 但是当我使用text=DictField()作为文档的字段时,我得到了按字符排序的键,这与原始顺序不同: {"te

我正在使用mongoengine和Django作为我的网站

我在我的mongoengine中导入了一些文章,它有一个字段
text
,这是一个有序的dict,章节名称作为键,章节内容作为值,如下所示:

{"text":{
"Introduction":"...",
"Algorithm":"...",
"Conclusion":"...",
"References":"..."}
}
但是当我使用
text=DictField()
作为文档的字段时,我得到了按字符排序的键,这与原始顺序不同:

{"text":{
"Algorithm":"...",
"Conclusion":"...",
"Introduction":"...",
"References":"..."}
}
我想要dict的原始顺序,但似乎mongoengine不提供OrderedDict字段


这个问题有什么解决办法吗?谢谢

>今天,对于有序的DICT没有支持,考虑使用Listfield来存储2元组

[
    ("key1", "value1"),
    ("key2", "value2"),
]

可以容易地变成<代码>有序的DIST</代码>(<代码> OrdEddit(StayList))

作为今天,没有支持有序的DICT,考虑使用Listfield来存储2元组

[
    ("key1", "value1"),
    ("key2", "value2"),
]

它可以变成一个<代码>有序的DIST(OrdEddit(StayList:)

)一个DIST在考虑更新选项时可能不是一个好主意。假设您想在“算法”之后添加“函数”。在不替换整个dict的情况下,底层MongoDB存储无法做到这一点。但是,如果您使用阵列(列表),则位置已设置,并且存在允许您在存储引擎中“插入位置”的操作。你可能想考虑一下你的用例,因为位置很重要,这可能是一个数组。在考虑更新选项时,DICT可能不是一个好主意。假设您想在“算法”之后添加“函数”。在不替换整个dict的情况下,底层MongoDB存储无法做到这一点。但是,如果您使用阵列(列表),则位置已设置,并且存在允许您在存储引擎中“插入位置”的操作。你可能想考虑一下你的用例,就好像位置很重要一样,这可能是一个数组。