MongoDB使用Python查询

时间:2012-04-19 09:09:51

标签: python mongodb

我正在尝试基于python的词典构建mongoDB查询。 密钥在dicts中应该是唯一的问题。 参见示例

MongoDB数据:

{
        "_id" : ObjectId("4dcd3ebc9278000000005158"),
        col1 : 'foo'
}
{
        "_id" : ObjectId("4dcd3ebc9278000000005159"),
        col1 : 'bar'
}

Python代码:

dict = {'col1': 'foo'}
dict.update({'col1': 'bar'})

db.test.find(dict)

只显示一行col1=='bar'

>>> dict
{'col1': 'bar'} 

如何使用不需要唯一键的词典(或任何内容)构建正确的MongoDB查询。

谢谢!

3 个答案:

答案 0 :(得分:3)

你在寻找'col1'是'foo'还是'bar'的文件?

如果是,那么您需要db.test.find({'col1': {'$in': ['foo', 'bar']}});

要解释一下,该查询会匹配col1的值为in列表['foo', 'bar']的文档。

此处记录了高级mongodb查询:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

答案 1 :(得分:1)

我认为解决方案只是一种简单的方法,你应该在dict中推送每个对象并将它们存储在一个数组中:

dict = []
your_obj = {'col1': 'foo'}
dict.append(your_obj)
dict.append({'col1': 'bar'})
for o in dict:
    db.test.find(o)

答案 2 :(得分:0)

另一种方法是在mongodb中使用$exists运算符。

query = {'col1': {'$exists': 'true'}}
db.test.find(dict)

通过这种方式,您不必指定 col1 可以采用的值。