猫鼬更新文档使用findByIdAndUpdate失败

编程入门 行业动态 更新时间:2024-10-21 15:52:52
本文介绍了猫鼬更新文档使用findByIdAndUpdate失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

尝试使用findByIdAndUpdate更新MongoDB文档:

Trying to update MongoDB document using findByIdAndUpdate:

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值,但这也不起作用.我在做什么错了?

I have tried swapping out the lm.findByIdAndUpdate value with landmarkModel.findByIdAndUpdate but that doesn't work either. What am I doing wrong?

推荐答案

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对象.

Note that landmarkModel accepts plain js objects.

如果您已经有一个mongoose对象,那么最好改用save:

If you already have a mongoose object then it's best to use save instead:

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); });

更多推荐

猫鼬更新文档使用findByIdAndUpdate失败

本文发布于:2023-11-28 10:08:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1641969.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文档   findByIdAndUpdate

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!