2016-08-12 61 views
5

查看Pymongo $in查詢中的一些奇怪行爲。查找符合以下查詢的記錄:

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

查詢返回沒有記錄。

如果我將其更改爲find_one,它將返回Lake鱘魚的最後一個值。該字段是一個文件,其中包含一個值。所以我正在尋找匹配鱘魚或鱘魚湖的記錄。

它工作正常,在蒙戈殼牌這樣的:

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

下面是我的測試代碼連接到數據庫所謂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

+0

史詩我的一部分失敗。 Arrggh! – Jer