属性之间的 Mongoose 引用

Mongoose reference between attributes

我在猫鼬中有一些模式如下:

var tournamentSchema = new Schema({
    name:       {type: String},
    teams:      [teamSchema],
    poules:     [pouleSchema],
    createdAt:  {type: Date, default: Date.now}
})

var pouleSchema = new Schema({
    teams:      [teamSchema],
    createdAt:  {type: Date, default: Date.now}
})

var teamSchema = new Schema({
    name:       {type: String},
    createdAt:  {type: Date, default: Date.now}
})

我会在我的锦标赛架构中推送一些团队。准备就绪后,我想与团队一起制作小球。

是否可以在 'tournamentSchema.teams' 和 'tournamentSchema.poules' 之间建立关系?我认为在 poules 属性中推动球队并不难,但是当我想更改球队名称时,我也想在 poules 中更改它。我应该手动执行此操作还是可能存在某种关系?

或者这是否仅适用于不同的模型?

提前谢谢你,

罗纳德.

我认为猫鼬种群可以帮助你。尝试这样的事情:

var tournamentSchema = new Schema({
    name:       {type: String},
    teams:      [teamSchema],
    poules:     [pouleSchema],
    createdAt:  {type: Date, default: Date.now}
})

var pouleSchema = new Schema({
    teams:      [teamSchema],
    createdAt:  {type: Date, default: Date.now}
})

var teamSchema = new Schema({
    team: {
       type: mongoose.Schema.Types.ObjectId,
       ref: 'teamsSchema'
    }
})

var teamsSchema = new Schema({
    name:       {type: String},
    createdAt:  {type: Date, default: Date.now}
})

因此,您的团队数组中的每个对象都引用 teamsSchema 中的 ObjectId,并且当您更改团队名称时,它会自动影响团队数组。希望对你有帮助。