У меня есть схема пользователя такого вида:
const userSchema = new Schema(
{
login: {
type: String,
required: true,
unique: true
},
passwd: {
type: String,
required: true
}
{
timestamps: {
createdAt: "created_at",
updatedAt: "updated_at"
}
}
);
const User = model("user", userSchema, "user", true);
В
документации говорится, что атрибут
unique не валидирует на уникальность при добавлении новой записи.
То есть, я могу спокойно добавить двух пользователей с одинаковым логином:
User.create({
login: "user123",
passwd: "123"
});
User.create({
login: "user123",
passwd: "123"
});
Никаких исключений не будет.
Как тогда проверять уникальность поля
login? Получается придется определять хук
// Срабатывает до операции сохранения
userSchema.pre("save", function() {
});
и в нём проверять, существует ли такой логин? Или есть какие-то другие способы?