У меня есть вложенные данные в mongo, которые я пытаюсь (безуспешно) запросить. Пример документа, который я пытаюсь найти, показан ниже:
{
'T009_Measurments': {
'ConditionKey': 'WPS-ActivePower 0-920,',
'HalfLifeDays': 100,
'ID': 120,
'LocationName': 'T001',
'MeasurementKey': 'Some DATA/LOC/LOC LOC/FFT_16000',
'Overload': 0,
'RPM': 1496.6044,
'RedAlarm': 0,
'TimeClosed-Min': 1440,
'Trigger_Time': datetime.datetime(2099, 6, 11, 20, 20, 40),
'WPS-ActivePower-Average': 727.0,
'WPS-ActivePower-Deviation': 0.0,
'YellowAlarm': 0
}
}
Что я действительно хочу делать, так это искать по HalfLifeDays. Я пробовал несколько вещей, в том числе:
db.collection.find({'T009_Measurments.HalfLifeDays' : 100})
db.collection.find({'T009_Measurments'}: {'HalfLifeDays' : 100})
Но пока ничего не могу получить. Что я делаю неправильно?
Код выполняется без сообщения об ошибке, однако данные не возвращаются. Когда я подсчитываю, я получаю 0.
Получаете ли вы правильное количество документов при использовании db.collection.count()?
Да. Там вроде все хорошо.
Правильно ли вы ввели название своей коллекции? В данном примере это просто collection
У меня действительно указано правильное имя коллекции ... Я собираюсь более внимательно изучить структуру документа ... Думаю, я что-то упускаю.
Теперь я успешно выполнил запрос с помощью метода поиска и поиска по идентификатору. Так что я не думаю, что моя структура испорчена.






Как и многие другие проблемы, это может быть связано с ошибкой пользователя. В моем запросе были неправильные ссылки. Я обнаружил это только тогда, когда в чистом отчаянии скопировал ключ из:
Object.keys(db.collectionName.findOne())
и вставил в свой запрос. Дальше все нормально заработало. Спасибо всем, кто дал советы по устранению неполадок.
Мне кажется, что первый нашел, есть ли сообщение об ошибке?