Я использую пимонго и в настоящее время имею одну коллекцию. Коллекция содержит документы, представляющие матчи в футбольной лиге. У каждого матча есть цели. В настоящее время цели реализованы в виде списка, содержащегося в объекте сопоставления:
{'matchID':1000,
'goals':[{'goalID':200,'scorer':'A'},
{'goalID':201,'scorer':'B']}
]
}
{'matchID':1001,
'goals':[{'goalID':211,'scorer':'C'},
{'goalID':212,'scorer':'D']}
]
}
Что я хочу сделать, так это запросить все цели с идентификатором выше, чем, скажем, 201. Из приведенных выше данных можно ожидать, что я получу цели 211 и 212.
Как мне реализовать это в mongodb - я пытаюсь что-то вроде:
x = mycollection.find({'$gt':[{'match.goals.goalID':201}]})
но это никуда меня не приведет. Должен ли я разделять цели в отдельную коллекцию и вместо этого вручную ссылаться? Как только цель введена, она никогда не будет затронута снова - она будет доступна только для чтения.