我正在使用貓鼬作為 ODM 并嘗試為動物/寵物建模。在模型中,我有 2 個欄位,父母和庇護所。我想確保寵物屬于一個人或一個庇護所,但不能同時屬于兩者。什么限制可以讓我這樣做。
我在 JS 中的模型:-
const petSchema = mongoose.Schema({
name: {
type: String,
required: [true, "Pet must have a name."],
trim: true
},
species: {
type: String,
required: [true, "Pet must have a species."]
},
parent: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
shelter: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Shelter'
}
}
我是資料庫及其術語的新手,如果有任何錯誤,請糾正我。謝謝你。
uj5u.com熱心網友回復:
您可以使用所需的功能來確定這一點,如下所示:
const petSchema = mongoose.Schema({
name: {
type: String,
required: [true, "Pet must have a name."],
trim: true
},
species: {
type: String,
required: [true, "Pet must have a species."]
},
parent: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: function() {
return !this.shelter;
}
},
shelter: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Shelter',
required: function() {
return !this.parent;
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/423989.html
