web-dev-qa-db-ja.com

Pymongo $ inクエリが機能しない

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

ここで何かが足りませんか?

10
Jer

サンプルデータとクエリを使用してテストを行ったところ、プログラムにタイプミスやその他のエラーがあると思います。これは機能します。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)

GIF

19
DAXaholic