У меня есть структура документа, аналогичная упрощенной версии, показанной ниже:
{
some_other_props: { ... },
systems: {
sys1: {
score: 24,
metric: 52
},
another_sys: {
score: 9,
metric: 77
},
some_other_sys: {
score: 12,
metric: 5
}
}
}
Я хотел бы вернуть все документы, где score : { "$gte" : 15 }
верно для любого из вложенных документов.
Единственный способ, которым я мог придумать, - это получить список ключей в system
и преобразовать его в какой-то беспорядок операторов или операторов.Но похоже, что я делаю что-то не так.
Я мог бы переформатировать структуру документа так, чтобы каждая система была в своем собственном документе ... но в some_other_props
есть много другой информации, и теперь переформатирование будетбыть болью.
По правде говоря, я пытаюсь сделать что-то более сложное.Верните все документы, в которых разница между score
и metric
одной и той же системы сильно различается.Но прежде чем я смог это сделать, я хотел убедиться, что могу просто выполнять простые запросы к поддеревьям, как я показал выше.
Может кто-нибудь подсказать, как запрашивать поддеревья в MongoDB?