Использование {unique: true} Таким образом, всякий раз, когда кто-либо пытается использовать один и тот же идентификатор пользователя для нескольких портфелей, мангуст выдаст ошибку.
Ваша модель будет тогда
const listSchema = mongoose.Schema({
user: { type: mongoose.Schema.Types.ObjectId, ref: "Users", unique: true },
name: { type: String, required: true },
description: {type:String, required: true},
image: {type:String},
symbol: {type: String, required: true}
});
Я использовал user properties unique .Таким образом, никакие две схемы списка не могут иметь одинаковый идентификатор пользователя.
Наконец, вы можете пропустить поиск предыдущего портфолио пользователя.Ваш код может быть
portfolio
.create({
user: req.body.user,
name: req.body.name,
description: req.body.description,
symbol: req.body.symbol,
image: req.body.image,
})
.then(portfolioPost => res.status(201).json(portfolioPost.serialize()))
.catch(err => {
// console.error(err);
res.status(500).json({ error: 'Something went wrong' });
});
В этом случае, если уже есть портфель с текущим идентификатором пользователя, MongoDB будет отправлено сообщение об ошибке.
Для получения более подробной информации, пожалуйста, проверьте Дополнительные параметры раздел.