Невозможно добавить свойства к объекту js

Я возвращаю документ Mongoose и хочу добавить некоторые метаданные к нему, прежде чем отправить его. Однако я не могу добавить никаких свойств, и я не знаю, почему. Я проверил, что он расширяемый с Object.isExtensible(doc), и он есть.

Item.findById(req.params.id).exec(function(err, doc) {
   doc.blah = 'hello';
   console.log(doc); // No trace of 'blah'. I can change/delete existing props however
})

Что может быть проблемой?

Ответы

Ответ 1

Ah.. Моя цель - документ Mongoose, который не позволяет добавлять свойства. Решение состоит в том, чтобы либо преобразовать возвращенный документ в простой объект, либо вызвать метод lean() в запросе.

Item.findById(req.params.id).exec(function(err, doc) {
  var obj = doc.toObject();
  ...
});

Item.findById(req.params.id).lean().exec(function(err, doc) {      
  ...
});