@EugeneMedvedev

Как сделать связи между коллекциями?

Есть 3 модели:
Лига – name
Сезон – name
Матч– homeTeamName, awayTeamName, score?, date

Нужно сделать так, чтобы при выборе лиги был поиск по сезонам, при выборе сезона поиск по матчам. Подскажите, пожалуйста, как это правильно сделать и как это связать, чтобы при создании матча была связь на сезон и сезон уже был в лиге?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
lssssssssssl
@lssssssssssl
Создаёте в модели League
seasonId: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Season' }]

Создаёте в модели Season
matchId: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Match' }]


Создаёте Лигу - leagueModel.create(leagueData)
Создаёте Сезон - seasonModel.create(seasonData)
После создания сезона апдейтите нужную лигу, добавляя ей id созданного сезона -
leagueModel.updateOne({ _id: leagueId }, { $push: { seasonId: inputSeasonId } })


Чтобы получить список сезонов в лиге, делаете
leagueModel.findById(leagueId).populate('seasonId')


Это связь Лиги с Сезонами. Аналогично делаете связь Сезона с матчами.
Как-то так. Особо в подробности не вдавался, но должно быть понятно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы