0
我有一個網頁,用戶可以在地圖上查看來自MongoDB的數據。我想要有幾個複選框,單選按鈕等來過濾地圖上看到的內容。如果我使用的MySQL我會做在pymongo動態構建查詢
query = "SELECT * FROM table WHERE x = 1"
if checkbox == "checked":
query += "AND WHERE y = 2"
我該如何複製與pymongo?
我有一個網頁,用戶可以在地圖上查看來自MongoDB的數據。我想要有幾個複選框,單選按鈕等來過濾地圖上看到的內容。如果我使用的MySQL我會做在pymongo動態構建查詢
query = "SELECT * FROM table WHERE x = 1"
if checkbox == "checked":
query += "AND WHERE y = 2"
我該如何複製與pymongo?
您只需建立查詢字典來代替:
query = {'x': 1}
if checkbox == 'checked':
query['y'] = 2
results = db.collection.find(query)
做一個OR
查詢應該是這樣的:
query = [{'x': 1}]
if checkbox == 'checked':
query.append({'y': 2})
results = db.collection.find({'$or': query})
而其更清潔的動態構建蒙戈查詢比它是建立原始的sql文本(不是在談論一個ORM) – jdi
這就像一個魅力!現在,如果我想做OR而不是AND呢? – user1084826
@ user1084826:你應該[閱讀文檔](http://www.mongodb.org/display/DOCS/OR+operations+in+query+expressions)。它關於如何格式化查詢就在那裏。 – jdi