我正在尝试使用updateOne方法更新mongodb的记录,但是它不起作用。
async function updateCourse(id) {
const result = await Course.updateOne({_id : id }, { name: 'Abc'},
function(err, res) {});
console.log(result);
}
任何人请提出可能的解决方案来解决此问题。
谢谢
答案 0 :(得分:1)
尝试此代码
const test = async function updateCourse(id) {
const result = await Course.updateOne({ _id: id }, { name: "Abc" })
console.log(result);
};
如果您使用异步等待,请不要再使用回调
我希望这可以为您提供帮助。谢谢
答案 1 :(得分:0)
嗯,你尝试过这个兄弟吗?
const result = await Course.findOneAndUpdate( { _id: id }, { name: "Abc" }, { new: true } )
答案 2 :(得分:0)
我也无法使它正常工作。对我来说,我必须这样做:
let tempSubDoc = await myDocument.mySubDocument.id(my_id);
tempSubDoc.value1 = val1;
tempSubDoc.value2 = val2;
await myDocument.save();
文档说,当对象被更新和保存时,Mongoose会在内部向MongoDb发送一个UpdateOne命令:https://mongoosejs.com/docs/documents.html
答案 3 :(得分:0)
我以为这会对某人有帮助,
您必须添加必需的字段以在猫鼬模式中进行更新,否则将删除这些字段,这就是为什么更新未完成的原因。
在这种情况下,必须将“名称”字段添加到“课程”模式。另外,您可以使用“等待”,而无需使用回调函数。