Привет, ребята, я пытаюсь создать User
Schema
, который имеет такой объект role
и объект appointment
.
new mongoose.Schema({
role: {
type: String,
enum: ["admin", "partner", "basic"],
default: "basic",
},
apponitments: {
type: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Appointment",
},
],
required: function () {
return this.role === "partner";
},
}
})
моя проблема с этим кодом заключается в том, что независимо от того, что такое role
, объект назначения все равно создается.
Я не хочу такого поведения, есть ли способ остановить это?
объект назначения создается для всех пользователей в данный момент, что я ожидаю, например, пользователь с ролью администратора не должен иметь объект назначения
default
значение undefined
, когда роль равна admin
, в противном случае верните value
,required
свойство для true
когда роль admin
требуется в противном случае false
new mongoose.Schema({
role: {
type: String,
enum: ["admin", "partner", "basic"],
default: "basic"
},
apponitments: {
type: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Appointment"
}
],
default: function () {
return this.role === "admin" ? undefined : this.value;
},
required: function () {
return this.role === "admin" ? false : true;
}
}
})
извините за задержку, но этот подход все равно создает объект
Я тестировал в мангусте v5.10.11, он работает отлично. это не создает поле, когда роль администратора.
о, у меня была старая версия, только что обновил проблему! Спасибо друг.
неясные детали, можете ли вы подробно объяснить, в чем проблема в вашей текущей схеме, и добавить варианты использования.