2016-08-12 8 views
5

Pymongo $inクエリで異常な動作が見られます。次のクエリを満たすレコードを探し:

speciesCollection.find({"SPCOMNAME":{"$in":['paddlefish','lake sturgeon']}}) 

クエリがレコードを返しません。

私はそれをfind_oneに変更すると、それはLake Sturgeonの最後の値を返します。フィールドは、1つのvauleで書かれたテキストです。だから私はパドルフィッシュまたはLake Sturgeonと合致する記録を探しています。

それはこのようにモンゴシェルで正常に動作します:ここで

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

から結果アムれますか?

答えて

8

私はちょうどあなたのサンプルデータとクエリでテストを行なったし、それが動作するよう、あなたのプログラムにタイプミスやその他のエラーがあると思う - 以下は、GIF

がデータベースに接続する私のテストコードで見ますエピックは私の一部に失敗

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

+0

多分あなたはそれをあなたに誤りを見つけ、soと呼ばれ、コレクションspeciesCollection。 Arrggh !! – Jer