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); });
- MongoDB位置NearBy唯一
- MongoDB使用Node.js获取集合中文档的数量(计数)
- 问题在与npm安装mongodb模块
- 如何在使用NodeJS并保存到MongoDB时同步多个RESTFul请求?
- 当加载socket.io.js时,Node.js“Uncaught SyntaxError:Unexpected token <”
- TypeError:不能使用'in'运算符在undefined中search'pluralization'
- 在大文件加载时将内存不足处理成mongo
- 节点js mongodb删除错误“键$ lte不能以'$'开始”
- MongoDB与MySQL相比要慢得多 – 基本的find()方法