Запрос Mongoose findById не возвращает результат.Объект всегда нулевой. - PullRequest
0 голосов
/ 08 октября 2018

findById не возвращает результат.const course объект равен нулю при каждом входе в систему.

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/mongo-exercises', { useNewUrlParser: true });

const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    tags: [ String ],
    date: Date,
    price: Number,
    isPublished: Boolean
});

const Course = mongoose.model('Course', courseSchema);

async function updateCourse(id){
        const course = await Course.findById(id);
        if(!course) return;

        course.isPublished = true;
        course.author = 'Another Author';

        const result = await course.save();
        console.log(result);
}

updateCourse('5a68fde3f09ad7646ddec17e');

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Проблема была решена.Я заметил, что когда я импортировал коллекцию до обновления на .findById();идентификаторы объектов были сохранены как строки вместо ObjectID

0 голосов
/ 08 октября 2018

findById() возвращает объект запроса, а не обещание, поэтому вы получаете нулевой объект, когда ожидаете запроса.

Вызовите *Метод 1008 * для возвращенного объекта запроса, чтобы получить Обещание, которое вы можете затем ожидать:

const course = await Course.findById(id).exec();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...