2012-06-29 2 views
0

사용자가 맵에서 MongoDB의 데이터를 볼 수있는 웹 페이지가 있습니다. 지도에 표시된 내용을 필터링하기 위해 여러 확인란, 라디오 버튼 등을 갖고 싶습니다. 내가 MySQL을 사용한다면pymongo에서 동적으로 쿼리 작성하기

query = "SELECT * FROM table WHERE x = 1" 
if checkbox == "checked": 
    query += "AND WHERE y = 2" 

어떻게 pymongo로 복제 할 수 있습니까?

답변

5

당신은 단순히 대신 쿼리 DICT 구축 : 그것은 구축하는 것보다 동적으로 몽고의 쿼리를 작성하는

query = [{'x': 1}] 
if checkbox == 'checked': 
    query.append({'y': 2}) 

results = db.collection.find({'$or': query}) 
+0

과도 청소기를이 같이 것 인 OR 쿼리를 수행

query = {'x': 1} if checkbox == 'checked': query['y'] = 2 results = db.collection.find(query) 

을 원시 SQL 텍스트 (ORM에 대해 이야기하지 않음) – jdi

+0

매력처럼 작동했습니다! AND 대신에 OR을하고 싶다면? – user1084826

+0

@ user1084826 : 정말로 [docs] (http://www.mongodb.org/display/DOCS/OR+operations+in+query+expressions)해야합니다. 검색어를 형식 지정하는 방법에 대해 자세히 설명합니다. – jdi

관련 문제