В настоящее время я борюсь с моим проектом.
У меня есть коллекция под названием "Игры" и одна "Участие".Когда пользователь входит в систему, он / она должен видеть games и статус индивидуального участия.Поэтому я хочу присоединиться к этим двум коллекциям , но я не могу использовать .populate (), потому что не могу ввести необходимый идентификатор участия в коллекцию игр из-за того, что у меня нет идентификатора участияв то время, когда я создаю игру. (поэтому мне нужно сохранить участие, запомнить созданный идентификатор и впоследствии вставить ЭТОТ идентификатор в коллекцию игр). В противном случае было бы хорошим решением (заполнить Игры в участии.) но изначально в этой коллекции нет участия, пока пользователь не нажмет «Участвовать» или «Не участвовать».
В основном мне нужен такой SQL-запрос:
select * from games g, participation p where g.gamesId = p.gamesId AND p.username = [...]
Есть ли возможность этого добиться?В противном случае мне нужно было бы сохранить каждое участие как «Игру», имея в ней зависимое имя пользователя и его / ее статус участия.Не предпочел бы это решение вообще.
Заранее спасибо!
На случай, если это поможет: Вот мои две коллекции:
Игра:
var gameSchema = mongoose.Schema(
{
isHome: { type: Boolean, required: true },
time: { type: String, required: true, max: 100 },
uzeit: { type: String, required: true, max: 100 },
clubId: { type: mongoose.Types.ObjectId, required: true },
enemy: { type: String, required: true, max: 100 },
place: { type: String, required: true, max: 100 },
(participation: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Teilnahme' }])
});
Участие:
var participationSchema = mongoose.Schema(
{
playerAvailable: { type: Boolean, required: true },
clubId: { type: mongoose.Types.ObjectId, required: true },
gameId: { type: mongoose.Types.ObjectId, required: true, ref: 'Game' },
memberName: { type: String, required: true },
}
);