Мангуст `findById` не возвращает ожидаемый документ

#javascript #node.js #mongoose

Вопрос:

Когда я нахожу документ, используя следующую строку:

 const user = await User.findById(req.user.id).populate('input')  

А затем я console.log user , я могу видеть документ, который выполняет запрос.

Однако, когда я добавляю .updateOne({ formResponded: '1' }); в предыдущую строку вот так:

 const user = await User.findById(req.user.id).populate('input').updateOne({ formResponded: '1'});  

и я console.log user я не получаю никакой записи, но вместо этого получаю объект, который выглядит так:

 { n: 1,  nModified: 1,  opTime: {  ts: Timestamp { _bsontype: 'Timestamp', low_: 2, high_: 1635212112 },  t: 41  },  electionId: 7fffffff0000000000000029,  ok: 1,  '$clusterTime': {  clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 2, high_: 1635212112 },  signature: { hash: [Binary], keyId: [Long] }  },  operationTime: Timestamp { _bsontype: 'Timestamp', low_: 2, high_: 1635212112 } }   

Почему это происходит?

Ответ №1:

Исправлено:

 const user = await User.findByIdAndUpdate({ _id: req.user.id }, { formResponded: '1' }).populate('input')