Pymongo:无法从mongodb中找到记录

时间:2018-09-20 10:50:27

标签: python mongodb pymongo

我有一个包含国家/地区记录的集合,我需要使用uid查找特定的国家/地区,即countryId

以下是样本收集数据:

{
"uid": 15024,

"countries": [{
        "countryId": 123,
        "popullation": 45000000

    },
    {
        "countryId": 456,
        "poppulation": 9000000000
    }
]

},
{
"uid": 15025,

"countries": [{
        "countryId": 987,
        "popullation": 560000000

    },
    {
        "countryId": 456,
        "poppulation": 8900000000
    }
]

}

我已经尝试在python中使用以下查询,但是找不到任何结果:

foundRecord = collection.find_one({"uid" : 15024, "countries.countryId": 456})

但它返回None。

请帮助并提出建议。

2 个答案:

答案 0 :(得分:0)

我认为以下内容会更好:

foundRecord = collection.find_one({"uid" : 15024,
                                   "countries" : {"$elemMatch" : { "countryId" : 456 }})

答案 1 :(得分:0)

确定使用相同的数据库/集合源吗?

似乎您要将结果保存在另一个馆藏中。

我尝试重现您的问题,它可以在我的mongodb上正常工作(请注意,我正在使用v4)

编辑:最好在定义“集合”的地方有一段代码