Node.js findByID()id返回空值
架构定义:Node.js findByID()id返回空值,node.js,mongoose,Node.js,Mongoose,架构定义: const coursesSchema = new mongoose.Schema({ name: String, author: String, tags: [String], date: { type: Date, default: Date.now }, isPublished: Boolean }); const Courses = mongoose.model('Courses', course
const coursesSchema = new mongoose.Schema({
name: String,
author: String,
tags: [String],
date: {
type: Date,
default: Date.now
},
isPublished: Boolean
});
const Courses = mongoose.model('Courses', coursesSchema);
这里我连接到数据库模式
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mongo-exercises').then(() => {
console.log('mongoose connceted successfylly');
}).catch((err) => {
console.log('mongoose didnt connected');
})
我正试图从MongoDB那里拿到唱片。但它返回的是空值,而不是对象
async function getCourses() {
const course = await Courses.find();
console.log(course);
}
它工作正常,正在从数据库返回所有对象
async function updateCourse(id) {
const course = await Courses.findById({_id:id});
console.log(course);
}
编辑:
我在这里传递ID以获取ID
updateCourse('5a68fe2142ae6a6482c4c9cb');
连我都通过了正确的身份证
有人能帮我解决这个问题吗?看看,您只需要将id作为参数传递,而不是将与id匹配的对象({u id:id}
)
您的方法应如下所示:
async function updateCourse(id) {
const course = await Courses.findById(id);
console.log(course);
}
您试图匹配的文档和传递的
id
值是。。。?到底是什么。你需要在一个问题中包含足够的信息,这样问题才能重现。如果您为\u id
定义了任何内容,则可能还应该包含“schema”。@naga-elixir-jar没有。@naga-elixir-jar,我尝试了您的解决方案,但没有返回任何内容value@NeilLunn,是的,我试过使用确切的ID,它在计划中要求你在问题内容中显示这些细节,而不仅仅是告诉我们你做了什么。请给我们一份您检索时遇到问题的文档,让我们自己尝试一下。包括已定义的架构以供参考。