在pymongo中动态构建查询

时间:2012-06-29 22:22:03

标签: python mongodb pymongo

我有一个网页,用户可以在地图上查看MongoDB中的数据。我想要几个复选框,单选按钮等来过滤地图上看到的内容。如果我使用MySQL,我会做

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

我怎样才能用pymongo复制它?

1 个答案:

答案 0 :(得分:5)

您只需构建查询字典:

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})