Запрос Pymongo во вложенном словареPython

Программы на Python
Anonymous
Запрос Pymongo во вложенном словаре

Сообщение Anonymous »

У меня есть словарь, структурированный следующим образом:

Код: Выделить всё

{"tests":{
"test_1": {"metadata": value},
"test_2": {"metadata": value},
...,
"test_n": {"metadata": value},
}
}
Кажется, я не могу найти способ выполнить запрос в моем словаре, чтобы вернуть список значений, таких как:

Код: Выделить всё

{'test_1':value, 'test_2':value, ..., test_n:'value'}
Я просто хочу иметь доступ к определенному значению из ключа метаданных. Я попытался найти документацию pymongo, и там много информации о поиске значений, превышающих определенное число, или выполнении команд для усреднения или суммирования, но я просто хочу получить доступ к данным.
Я пробовал написав что-то вроде:

Код: Выделить всё

mydoc = mycol.find({"tests.test_1":"metadata"})
for x in mydoc:
print(x)
но в результате я не получаю никаких результатов.
РЕДАКТИРОВАТЬ:
Поэтому я попробовал использовать решение из комментария типа

Код: Выделить всё

res = mycol.find({},{"test_1_metadata":"$tests.test_1.metadata", "test_2_metadata":"$tests.test_2.metadata",..., "test_n_metadata":"$tests.test_n.metadata"}
for x in res:
print(x)
но это возвращает только пустой словарь.
РЕДАКТИРОВАТЬ 2:
Это не пустой словарь, но он возвращает не только нужные поля

Код: Выделить всё

{'_id': ObjectId('xxxxx')}
...
где xxxxx — это идентификатор объекта
Я знаю, что эти ключи существуют. Если я загружу один файл JSON на свой локальный компьютер, я смогу получить доступ к каждому значению следующим образом:

Код: Выделить всё

data['tests']['test_1']['metadata']
но я не могу найти его в приведенном выше запросе

Подробнее здесь: https://stackoverflow.com/questions/784 ... dictionary

Вернуться в «Python»