2012-04-19 11 views
1

私はPythonの辞書に基づいてmongoDBクエリを構築しようとしています。 dictsでキーが一意でなければならないという問題。 例を参照してくださいPythonでMongoDBをクエリ

MongoDBのデータ:

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

Pythonコード:

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

db.test.find(dict) 

がどのように使用して右のMongoDBのクエリを構築することができcol1=='bar'

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

を持つ唯一のラインを示してユニークである必要のない辞書(または何か)キー。

ありがとうございます!

答えて

3

'col1'が 'foo'または 'bar'のいずれかのドキュメントをお探しですか? col1の値がリスト['foo', 'bar']inですので、あなたはdb.test.find({'col1': {'$in': ['foo', 'bar']}});

を説明したい場合は

は、そのクエリは、文書を一致します。

高度なMongoDBのクエリは、ここに記載されています:私はあなたのためのソリューションは、単純な方法だと思いhttp://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

うん、 そのとおりです。ありがとうございました:) – KennyPowers

1

、あなたは辞書内の各オブジェクトをプッシュし、配列に格納する必要があります

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