моя база данных не обновляется, когда я запускаю свой код с помощью update или updateOne - PullRequest
0 голосов
/ 25 мая 2020

В настоящее время я изучаю NodeJS, и я написал код для обновления моей базы данных, используя mon goose. Сначала я подумал, что это проблема устаревания, затем я добавил параметр useFindAndModify: false в mongoose.connect(). Однако по какой-то причине он все еще не обновлялся в моей базе данных. Это результат моего кода, когда я его запускаю.

 mongoose.connect('mongodb://localhost/mongo-exercises',{ useNewUrlParser: true, useFindAndModify: false, useCreateIndex: true, useUnifiedTopology: true })
    .then( () => console.log('Connected to database'))
    .catch( () => console.error('Cannot connect to database'))


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

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

async function updateCourse(id) {

        const result = await Course.updateOne({_id: id}, {
            $set: {
                author: 'Mosh', 
                isPublished: false
            }
        });
        console.log(result);

}

updateCourse('5a68fde3f09ad7646ddec17e');

1 Ответ

0 голосов
/ 25 мая 2020

значения _id кажутся String в вашей коллекции курсов, но они должны быть ObjectId, чтобы запрос мог работать.

Удалите коллекцию курсов, удалите ключи и значения _id в json data, чтобы MongoDB могла правильно создать _id с типом ObjectId. После импорта документов с помощью mongoimport ваше обновление будет работать должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...