【发布时间】:2015-07-01 07:49:57
【问题描述】:
我正在为我的网站使用带有 Django 的 mongoengine。
我将一些文章导入到我的 mongoengine 中,它有一个字段 text 这是一个有序的字典,其中章节名称作为键,章节内容作为值,如下所示:
{"text":{
"Introduction":"...",
"Algorithm":"...",
"Conclusion":"...",
"References":"..."}
}
但是当我使用text = DictField()作为Document的一个字段时,我得到了按字符排序的键,这与原来的顺序不同:
{"text":{
"Algorithm":"...",
"Conclusion":"...",
"Introduction":"...",
"References":"..."}
}
我想要字典的原始顺序,但似乎 mongoengine 不提供 OrderedDictField。
这个问题有什么解决办法吗?谢谢!
【问题讨论】:
-
当您考虑更新选项时,在这里使用 dict 可能不是一个好主意。假设您想在“算法”之后添加“功能”。如果不替换整个 dict,底层 MongoDB 存储就无法做到这一点。如果您使用数组 ( list ),但是位置已设置,并且存在允许您在存储引擎中“插入位置”的操作。您可能想在这里考虑您的用例,好像位置很重要,这可能应该是一个数组。
标签: python django mongodb dictionary mongoengine