Mongoose更新文档与findByIdAndUpdate失败
尝试使用findByIdAndUpdate更新MongoDB文档:
var landmarkModel = mongoose.model('landmark', landmarkSchema, 'landmarks'); var lm = new landmarkModel(); //adding data to schema here, like: lm.name = req.body.name; lm.findByIdAndUpdate(req.body._id, lm, function (err, landmark) { if (err) console.log(err); else{ console.log(null, landmark); } });
返回错误: Object lm has no method 'findByIdAndUpdate'
我已经尝试用landmarkModel.findByIdAndUpdate
交换lm.findByIdAndUpdate
值,但这也不起作用。 我究竟做错了什么?
findByIdAndUpdate
是一个静态方法:
var landmarkModel = mongoose.model('landmark', landmarkSchema, 'landmarks'); var lm = req.body; delete lm._id; landmarkModel.findByIdAndUpdate(req.body._id, lm, console.log);
请注意, landmarkModel
接受普通的js
对象。
如果你已经有一个mongoose
对象,那么最好使用save
来代替:
var landmarkModel = mongoose.model('landmark', landmarkSchema, 'landmarks'); landmarkModel.findById(req.body._id, function (err, lm) { if (err) return next(err); //adding data to schema here, like: lm.name = req.body.name; lm.save(console.log); });