Quiero agregar un nuevo campo al objeto.
var _u = await User.findOne({_id},{_id:0, name:1, username:1, group:1}).populate({
path: 'group',
select: '-_id title'
})
_u.type = 'user'
console.log(_u)
Pero no tiene campo de type
. ¿Por qué no puedo agregar un nuevo campo? ¿Qué tengo que hacer?
Es porque Mongosee hidrata sus respuestas, por lo que no es un objeto JavaScript puro.
Si desea devolver un objeto JavaScript puro, debe agregar el método lean()
a la consulta. Además, eso mejorará el rendimiento.
await User.findOne({ _id }, { _id:0, name:1, username:1, group:1 })
.populate({
path: 'group',
select: '-_id title'
})
.lean()
Puede encontrar más información en los documentos oficiales .