模式定义:
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');
任何人都可以帮助我解决问题
答案 0 :(得分:0)
看看findById
documentation,您只需要传递id作为参数,而不是与id(function CreateMix(...classes) {
return function Mixed(){
const instances =[this, ... classes.map(cls => new cls(...arguments))]
const weakbind = (proxy,fn,obj) => new Proxy(fn, {
apply(fn, thisArg, props){
return fn.apply(proxy === thisArg? obj:thisArg ,props);
}})
return new Proxy(this, {
get(_, prop, proxy) {
obj = instances.find(obj => prop in obj);
const val = Object(obj)[prop];
return typeof val === "function" ? weakbind(proxy,val,obj) : val;
},
has(_, prop) { // Optional: if you care about the `in` operator
return instances.some(obj => prop in obj);
},
});
}
}
// class Mixed extends CreateMix(Map, EventTarget){}
var Mixed = CreateMix(Map, EventTarget);
var obj12 = new Mixed();
obj12.set('foo','bar');
console.log("Map contains: ", Object.fromEntries(obj12));
obj12.addEventListener('foo', e => console.log("Event object type: ", e.type) );
obj12.dispatchEvent( new Event('foo') );
obj12.a = 3;
obj12.myfn = function (){console.log( this.a) };
obj12.myfn() // 3
obj12.myfn.call({a:4}) // 4
class MyAwsomeClass extends CreateMix(Map, EventTarget){
constructor(){
super(...arguments);
this.a = 33;
}
logA(){
console.log( this.a)
}
}
const myAwsomeInstance = new MyAwsomeClass( obj12 );
myAwsomeInstance.has('foo') // true
)相匹配的对象。
您的方法应如下:
{_id:id}