Я новичок в БД Mongo и буду очень признателен за помощь в следующем запросе к базе данных.В основном мне нужно выбрать все результаты, где поле «Результат» находится в поле «первый», «второй» или «третий», и проект, который сгруппирован по странам как «медали» (где медали завоеваны).
Затем мне нужно сделать обратное в конвейере, чтобы выбрать, где медали не были выиграны.Я думаю, что эквивалентом в SQL будет выбор солнца из записей, где результат в «первый», «второй» или «третий» в качестве «медалей». И выберите сумму записей не в «первый», «второй»или «третий» как «non_medals».Затем сгруппируйте результаты по странам.
Ниже приведен запрос, который мне удалось найти до сих пор, но, похоже, он не может быть правильным.
pipeline_4 = [
{'$match': {'Outcome': {'$in': ['first','second', 'third'] } ,'Country': {'$exists': True}}},
{'$group': {'_id': {'outcome': '$Outcome', 'country': '$Country'},
'medals': {'$sum': 1}}},
{'$project': {
'outcome': 1, 'country', 1, 'medals': 1
}},
{'$match': {'Outcome': {'$nin': ['first','second', 'third'] } ,'Country': {'$exists': True}}},
{'$group': {'_id': {'outcome': '$Outcome', 'country': '$Country'},
'non_medals': {'$sum': 1}}},
{'$project': {
'outcome': 1, 'country', 1, 'non_medals': 1
}}
]
Может кто-нибудь посоветовать по этому поводу?на данный момент мне возвращаются только группы медалей, а они не сгруппированы.Если вам нужна дополнительная информация, пожалуйста, спросите, поскольку я говорю, что я новичок в Mongo и, возможно, подхожу к ней слишком стандартным способом SQL.
Спасибо,