python - Pymongo $in 查询不工作

标签 python mongodb pymongo pymongo-3.x

在 Pymongo $in 查询中看到一些奇怪的行为。查找满足以下查询的记录:

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

查询没有返回任何记录。

如果我将其更改为 find_one,它会返回 Lake Sturgeon 的最后一个值。该字段是一个带有一个值的文本。所以我正在寻找匹配白鲟或湖鲟的记录。

它在 Mongo Shell 中工作正常,如下所示:

speciesCollection.find({SPCOMNAME:{$in: ['paddlefish','lake strugeon']}},{_id:0})

这是shell的结果

{ "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)

GIF

关于python - Pymongo $in 查询不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919756/

相关文章:

MongoDB 唯一索引错误 : how to know which field generated the error?

python - 如何在 pymongo/python 中使用集合创建 for 循环?

python - Beautiful Soup 查找 html 页面其他标签之间所有出现的标签

python - 嵌套函数声明的范围

node.js - mongoose 7.0.3 使用运算符 $and 严格搜索日期

database - 如果过滤器不返回任何内容,如何插入文档,否则用go替换mongodb中找到的文档?

python - 错误代码 400

java - Python 代码转换为 JVM

r - 如何使用 RMongo 计算特定列的平均值?

javascript - MongoDb:如何从文档中获取字段(子文档)?