2016-08-12 65 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