我使用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中你想保持簡單。你能解釋爲什麼你需要訂購嗎?請將此詳細信息添加到您的原始帖子,也許我可以建議一個更好的選擇。 –