Estoy usando Node.js y Mongoose para acceder a una base de datos MongoDB y devolver una matriz de objetos de una colección MongoDB. Sin embargo, quiero agregar una propiedad a cada uno de los objetos devueltos. Mi código se muestra a continuación
router.get('/admin/manage_accounts/view_all', (req,res) => { Community_Member.find({}, (error, community_member) => { community_member.forEach(function(element){ element.Role = "Community Member" }) console.log(community_member) res.send(community_member) }) }Se devuelven los objetos de la base de datos, pero la propiedad Rol no se agrega a ninguno de los objetos y no estoy seguro de por qué. ¿Alguien puede darme un poco de información?
La forma funcional estándar de hacerlo es usando map
router.get('/admin/manage_accounts/view_all', (req,res) => { Community_Member.find({}, (error, community_member) => { community_member = community_member.map(element => { element.Role = "Community Member" return element }) console.log(community_member) res.send(community_member) }) }La edición de los objetos de un solo element no actualizará el elemento en la matriz principal.
Podría crear una matriz separada y agregar los objetos con la nueva propiedad en ella:
router.get('/admin/manage_accounts/view_all', (req,res) => { Community_Member.find({}, (error, community_member) => { const result = []; community_member.forEach(function(element){ result.push({ ...element, Role: "Community Member" }) }) console.log(result) res.send(result) }) }