Pymongoで奇妙な行動を見る$in
クエリ。次のクエリを満たすレコードを探しています。
speciesCollection.find({"SPCOMNAME":{"$in":['paddlefish','lake sturgeon']}})
クエリはレコードを返しません。
Find_oneに変更すると、ミズウミチョウザメの最後の値を返すように機能します。このフィールドは、1つの値でファイルされたテキストです。だから私はヘラチョウザメやミズウミチョウザメに一致するレコードを探しています。
これは、MongoShellでは次のように正常に機能します。
speciesCollection.find({SPCOMNAME:{$in: ['paddlefish','lake strugeon']}},{_id:0})
これがシェルの結果です
{ "SPECIES_ID" : 1, "SPECIES_AB" : "LKS", "SPCOMNAME" : "lake sturgeon", "SP_SCINAME" : "Acipenser fulvescens
{ "SPECIES_ID" : 101, "SPECIES_AB" : "PAH", "SPCOMNAME" : "paddlefish", "SP_SCINAME" : "Polyodon spathula" }
ここで何かが足りませんか?
サンプルデータとクエリを使用してテストを行ったところ、プログラムにタイプミスやその他のエラーがあると思います。これは機能します。GIFを参照してください。
以下は、so
というデータベースとコレクションspeciesCollection
に接続する私のテストコードです。おそらく、エラーが見つかります。
import pymongo
client = pymongo.MongoClient('dockerhostlinux1', 30000)
db = client.so
coll = db.speciesCollection
result = coll.find({"SPCOMNAME":{"$in":['paddlefish','lake sturgeon']}})
for doc in result:
print(doc)