2016-07-28 9 views
0

次のmongoクエリは正常に動作します。 db.data.find({"data.id": "5" })変数の値をmongoクエリに渡すにはどうすればいいですか?

私はPythonプログラムでクエリに引数リストの変数の値を渡したい:

import pymongo 
from pymongo import MongoClient 
client=MongoClient() 
db=client.dhlab 
data=db.data 

for data in db.data.find({"data.id":'"' $id '"'}): 
    print data 

私はせずにdb.data.find({"data.id":id})ために以下のことを試してみました成功: /"id/", '"'id'"', /"$id/"

これを修正するにはどうすればよいですか?

+0

ここでの値は何ですか? – styvane

答えて

0

まず、既存のドキュメントスキーマを共有できますか?補充のために。

db.data.findOne() 

明示的にフィールドを使用しましたか?id文書にありますか?

MongoDBストアドキュメント_idを使用して、多分あなたは間違っています。

0

あなたはこれを意味しましたか?

result = db.data.find({"data.id": {$in: [1,2,3,5]} }) 

for data in result: 
    print(data) // will print all 'data' document whith that id 

[1,2,3,5]を自分の値または変数に置き換えることができます。たとえば :

range(1,5) # is equal to [1,2,3,4] 
[1,2,3] # it takes ids equal to 1,2 or 3 

我々は(我々だけでも、数字を使用したい)このような状況を考えることができます:

list = [] 
numbers = range(1,100) 
for number in numbers: 
    if number % 2 == 0 
     list.append(number) 

result = db.data.find({"data.id": { $in: list } }) 
関連する問題