使用javascript中的findByID从MongoDB获取空ObjectID-新手

问题描述 投票:0回答:1

我是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 =“在此处输入图像描述”>]

javascript mongodb
1个回答
0
投票

发生在我身上。使用罗盘导入时,只需取消选择_Id属性作为其字符串即可。当导入的mongodb驱动程序将放入一个新的对象_id,该对象具有和可以查询的对象ID。

© www.soinside.com 2019 - 2024. All rights reserved.