MongoDB фильтр из вложенных объектов - PullRequest
0 голосов
/ 31 марта 2019

Я работаю над проектом футбольных ставок, где у команд есть свои матчи, которые они сыграли. history. Каждый матч является частью этапа соревнования. Это означает, что у соревнований есть этапы, на которых есть матчи

У меня есть следующие модели

const MatchSchema = new mongoose.Schema({
  local: { type: mongoose.Schema.Types.ObjectId, ref: 'Team' },
  guest: { type: mongoose.Schema.Types.ObjectId, ref: 'Team' },
  localScore: { type: Number, default: -1 },
  guestScore: { type: Number, default: -1 },
  date: { type: mongoose.Schema.Types.Date },
});

const StepSchema = new mongoose.Schema({
  matchs: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Match', default: [] }],
  name: String,
});

const CompetitionSchema = new mongoose.Schema({
  steps: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Step', default: [] }],
  start: { type: mongoose.Schema.Types.Date },
  name: String,
});

const TeamSchema = new mongoose.Schema({
  name: String,
  logo: String,
  history: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Match', default: [] }],
});

Я работаю над рейтинговой таблицей лидеров и хочу выбирать команды, которые играли в определенных соревнованиях. Я хочу получить все команды, у которых есть матч, сыгранный в определенном соревновании, отфильтровав их.

Я проверил метод агрегирования, но не знаю, как сказать Монго, что он должен заполнить поле, чтобы сработал прогноз, и как связать эти совпадения с идентификатором соревнования.

Надеюсь, я дал понять

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...