У меня есть этот запрос в mongodb
, который означает, что выигранная команда получит 3 очка, а команды по жеребьевке - по 1.
db.football.aggregate([
{ "$match": {
"$and": [
{ "Div": "SP1" }
]
}
},
{ "$group": {
"_id": {
"div": "$Div"
},
"teams": {
"$push": {
"$cond": {
"if": { "$eq": [ "$FTR", "H" ] },
"then": { "T": "$HomeTeam", "P": 3 },
"else": {
"$cond": {
"if": { "$eq": [ "$FTR", "A" ] },
"then": { "T": "$AwayTeam", "P": 3 },
"else": {
"$cond": {
"if": { "$eq": [ "$FTR", "D" ] },
"then": { "draws": [{ "T": "$HomeTeam", "P": 1}, { "T": "$AwayTeam", "P": 1 }] },
"else": "Error"
}
}
}
}
}
}
}
}
}
])
Что приводит к:
{ "_id" : { "div" : "SP1" },
"teams" : [
{ "T" : "La Coruna", "P" : 3 },
{ "T" : "Malaga", "P" : 3 },
{ "draws": [
{ "T" : "Barcelona", "P" : 1 },
{ "T" : "Villarreal", "P" : 1 }
]
},
...
]
}
Убедитесь, что у меня есть массив для команд ничьих, но я просто хочу большой массив в командах, как показано ниже:
{ "_id" : { "div" : "SP1" },
"teams" : [
{ "T" : "La Coruna", "P" : 3 },
{ "T" : "Malaga", "P" : 3 },
{ "T" : "Barcelona", "P" : 1 },
{ "T" : "Villarreal", "P" : 1 },
...
]
}
Я пытался выставить unwind
команд, но безрезультатно.
Набор данных можно скачать здесь: https://www.football -data.co.uk / mmz4281 / 1617 / SP1.csv Информация о наборе данных: https://www.football -данные.co.uk / notes.txt
Чтобы импортировать CSV:
mongoimport -d dataset -c football --type csv --file path_to_file_SP1.csv --headerline --drop --stopOnError