【发布时间】:2018-07-15 12:18:04
【问题描述】:
如果现有文档不存在,我尝试了两种方法来覆盖它。
第一种方式
此代码不起作用并在每次更新时抛出此错误:
错误: *对文档 {_id: ObjectId('***') , ...} 应用更新后,发现(不可变)字段 '_id'改成_id:ObjectId('***78')"*
exports.loginUser = function (req, res) {
var newUser = new userModel(req.body);
userModel.findOneAndUpdate({email: req.body.email}, newUser ,{ new: true,
upsert:true, setDefaultsOnInsert: true }, function (err, userUpdate) {
return res.json(userUpdate);
}
第二条路
直接插入请求body 效果很好。但我不想那样做,因为body 可以有垃圾:
exports.loginUser = function (req, res) {
var newUser = new userModel(req.body);
userModel.findOneAndUpdate({email: req.body.email}, req.body ,{ new: true,
upsert:true, setDefaultsOnInsert: true }, function (err, userUpdate) {
return res.json(userUpdate);
}
那么任何人都可以建议我如何使用模型而不是请求正文来做findOneAndUpdate。
【问题讨论】:
标签: node.js mongodb express mongoose