【问题标题】:Pymongo $in Query Not WorkingPymongo $in 查询不工作
【发布时间】:2016-08-12 22:22:49
【问题描述】:

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

我错过了什么吗?

【问题讨论】:

    标签: python mongodb pymongo pymongo-3.x


    【解决方案1】:

    我认为您的程序中存在拼写错误或其他错误,因为我刚刚对您的示例数据和查询进行了测试并且它有效 - 请参阅 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)
    

    【讨论】:

    • 史诗般的失败对我而言。啊!!
    猜你喜欢
    • 1970-01-01
    • 2021-01-02
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多