因此,我正在尝试使用其ID检索课程。我尝试使用:
我不确定为什么它不起作用,是否必须在模式中定义_id类型?
结果:
空
这是我的模式+函数
const courseSchema = new mongoose.Schema({
name: { type: String, required: true, minlength: 3, max: 255 },
category: {
type: String,
required: true,
enum: ["web", "mobile", "network"]
},
tag: [String],
data: Date,
author: String,
isPublished: Boolean,
price: {
type: Number,
required: function() {
return this.isPublished;
},
min: 10,
max: 200
},
__v: Number
});
const Course = mongoose.model("Course", courseSchema);
async function updateCourse(id) {
// var __id = mongoose.Types.ObjectId(id); // tried converting string id (?)
console.log(id);
// // method 1
const course = await Course.findOne({ _id: __id });
console.log("resulting...", course);
if (!course) return;
course.isPublished = true;
course.author = "Another author";
const result = await course.save();
console.log("saved....", result);
}
updateCourse("5c726f6feb352743f8226239");
MongoDB:
答案 0 :(得分:0)
您不应在__id
通话中使用Course.findOne
,而应使用_id: _id
:
Course.findOne({_id: _id});
答案 1 :(得分:0)
尝试将__id
替换为id
。
Course.findOne({_id: id});