属性之间的 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,并且当您更改团队名称时,它会自动影响团队数组。希望对你有帮助。
我在猫鼬中有一些模式如下:
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,并且当您更改团队名称时,它会自动影响团队数组。希望对你有帮助。