【发布时间】:2019-09-10 05:57:19
【问题描述】:
我可以查询我收藏中的课程并列出它们,但无法更新它们
我尝试过使用 findone 方法以及 findById
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mongo-exercises', {useNewUrlParser: true})
.then(() => console.log(' Successfuly connected to mongodb...'))
.catch(err => console.error('Ooops! something went wrong', err));
const courseSchema = new mongoose.Schema({
name: String,
tags: [ String ],
author: String,
isPublished: Boolean,
price: Number,
date: {type: Date, default: Date.now}
});
const Course = mong.model('Course', courseSchema);
async function updateCourse(id) {
const course = await Course.findById(id);
if (!course) return;
course.isPublished = false;
course.author = 'Kalisha';
// course.set({
// isPublished: true,
// author: 'Kalisha Malama'
// });
const result = await course.save();
console.log(result);
}
updateCourse('5a68fe2142ae6a6482c4c9cb');
我没有收到任何错误...我的控制台只是显示已成功连接到 mongodb...
【问题讨论】:
-
好吧,
if (!course) return;当然不会是一个错误,并且会解释为什么其余代码都没有发生日志记录。首先要检查的是您在请求中发送的id确实存在。 -
我建议展示您如何验证您认为文档确实存在。我的钱说你希望在名为
course的集合中找到一个文档,而 mongoose 实际上正在寻找一个名为courses的集合。