Pymongo: невозможно найти запись из mongodb - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть коллекция, содержащая записи о странах, мне нужно найти конкретную страну с идентификатором 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})

, но он возвращает Нет.

Пожалуйста, помогите и предложите.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Вы уверены, что используете тот же источник базы данных / коллекции?

Похоже, что вы сохраняете результаты в другой коллекции.

Я пытался воспроизвести вашу проблему, и онаработает на моем mongodb (обратите внимание, что я использую v4)

РЕДАКТИРОВАТЬ: Было бы неплохо иметь кусок кода, где вы определяете "коллекцию"

0 голосов
/ 20 сентября 2018

Я думаю, что следующее будет работать лучше:

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