我使用Pymongo来访问Mongo数据库。我想搜索名称中包含字符串的指定位置附近的所有人。例如,我想搜索附近的所有人[105.0133,21.3434],并且名称中包含“标记”。所以我写这样的查询:Pymongo自动排序输入字典
db.users.find({ "location.coords": { "$nearSphere": [105.0133, 21.3434], "$maxDistance": 10/EARTH_RADIUS }, "name": "/Mark/" })
(我在我的“用户”集合的索引“location.coords”)
的查询工作正常在MongoDB中控制台,但同时通过Pymongo执行,字典中被重新排序是这样的:
{ "name": "/Mark/", "location.coords": { "$nearSphere": [105.0133, 21.3434], "$maxDistance": 10/EARTH_RADIUS } }
(“姓名”关键是前“location.coords”,这是不是我所期待 - 也MongoDB的预期)
这导致的mongod b无法理解查询并返回任何结果。任何人都可以帮我弄清楚如何强制Pymongo不会重新排序我的字典。
感谢和问候
谢谢您的答复。你可以给我一个OrderedDict对象的建议,因为我使用Python 2.6,集合。OrderedDict仅在2.7版本中提供。 – ofecrpnr
@ofecrpnr:我的建议是,你不要使用有序的字典。只要坚持基础知识,如果您将密钥顺序保留在列表中,那么您将始终有一致的顺序来索引到您的字典中。请记住,在Python中你想保持简单。你能解释为什么你需要订购吗?请将此详细信息添加到您的原始帖子,也许我可以建议一个更好的选择。 –