我想对文档执行更新,但我想将此更新限制为顾问字段,因为我需要验证是否由用户填充的该字段存在在文档用户
中目前,我可以更新所有字段,我想添加一个限制,该限制将在执行以下内容的更新之前验证文档 users 中是否存在 user 用户:文档任务
taskSchema.js
const TaskSchema = new Schema({
taskName: {
type: String,
trim: true,
required: true,
},
projectName: {
type: String,
trim: true,
required: true,
},
userTask: {
type: String,
trim: true,
required: true,
},
consultants: [{
type: String
}],
content: String })
还有我的更新控制器
changeTask: (req, res, ) => {
let taskName = req.body.taskName
let id = req.params._id
Task.findById(req.params._id)
.then(task => {
Task.findByIdAndUpdate(req.params._id, { $set: req.body }, { upsert: false }, (err, task) => {
if (err) { throw 'Task doesnt exist!' }
else res.send(task)
})
}).catch(err => {
if (err.kind === 'ObjectId') {
return res.status(404).send({
message: "Task not found with id " + req.params._id
})
}
return res.status(500).send({
message: "Error retrieving Task with id " + req.params._id
})
})
console.log(id)
}
}
此刻,我可以修改所有身体,而这还不是用户是否存在的验证,因此我想知道我是否可以执行, User.findOne({用户名:用户名}当我必须更新顾问字段时,如果我不必更新此字段,则不执行User.findOne。 我