我目前正在为我的一个项目苦苦挣扎。
我有一个名为“游戏”的集合和一个“参与”的集合。 用户登录后,他/她应该能够看到游戏和个人参与状态。 因此,我想加入这两个集合,但是我不能使用.populate(),因为由于我没有参与ID,因此无法在Games集合中输入必要的参与ID (因此,我需要保存参与情况,记住创建的ID,然后在游戏集合中插入此ID)。 相反,这将是一个很好的解决方案(填充“参与游戏”),但是最初,在用户单击“参与”或“不参与”之前,这些集合中没有任何参与。
基本上我需要这样的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 },
}
);