更新文档而无权更新某些字段

时间:2019-02-02 18:09:19

标签: node.js mongodb mongoose

我想对文档执行更新,但我想将此更新限制为顾问字段,因为我需要验证是否由用户填充的该字段存在在文档用户

目前,我可以更新所有字段,我想添加一个限制,该限制将在执行以下内容的更新之前验证文档 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。             我

0 个答案:

没有答案