Конкретное значение в коллекции от mongodb с использованием Python - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу получить доступ к определенному номеру в моей коллекции (mongodb) через python.

Я хочу получить доступ «только» к значению расстояния (204) на основе города «Бостон» без какого-либо ключевого отображения слова «Расстояние». Предполагаемый выход: 204

Коллекция в mongodb (файлы json):

{User ID: 1,
Test_description:{"City":boston, "Distance":204,"high_temp":1}}

{User ID: 2,
Test_description:{"City":new york, "Distance":24,"high_temp":25}}

Программа:

d=collection.find_one({"Test_description":{"$elemMatch":{"City":"boston"}}})

print (d['Test_description']['Distance']) 

Ошибка:

-->TypeError: list indices must be integers or slices, not str

Но когда я использую print(d['Test_description']), это дает мне вывод {City:voston,distance:204,high_temp:1}, чего я не хочу.

1 Ответ

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

Если вы используете PyMongo.

Если результат только один

distance = collection.find_one({'Test_description':{'$elemMatch':{'City':'boston'}}})['Test_description']['Distance']

Если есть несколько результатов

distance = [x['Test_description']['Distance'] for x in collection.find({'Test_description':{'$elemMatch':{'City':'boston'}}})]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...