我是javascript和mongo的新手,并尝试使用id在我的MongoDB数据库集合中找到一门课程,但获取空值。您能帮我吗?
注意:我正在使用MacBook。这是我正在尝试做的非常基本的事情。我可以使用.find()来获取对象,但是findByID(id)似乎对我不起作用。我想念什么?让我知道是否需要更多详细信息。
Edit:奇怪的发现,请参考image。对于第一个,我无法找到它或使用id更新它,但是我可以找到并更新第二个。第一个使用json文件插入数据库,第二个使用javascript中的.save()插入。
PFB我的代码:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mongo-exercise', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('Connected to mongo-exercise database.'))
.catch(err => console.log('Could not connect to mongo-exercise database.', err));
// Create the schema
const schema = new mongoose.Schema({
name: String,
author: String,
price: Number,
tags: [String],
isPublished: Boolean
});
// Call the schema
const Course = mongoose.model('course', schema);
async function updateCourse(id) {
try {
const course = await Course
.findById(id);
console.log('Course is ', course);
}
catch (err) {
console.log('Solution failed: ', err.message);
throw error
}
}
updateCourse("5a68fdf95db93f6477053ddd");
[<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS84OEQ4ai5wbmcifQ==” alt =“在此处输入图像描述”>]
发生在我身上。使用罗盘导入时,只需取消选择_Id属性作为其字符串即可。当导入的mongodb驱动程序将放入一个新的对象_id,该对象具有和可以查询的对象ID。