son recorrer objetos los ejemplos ejemplo cuales comandos array javascript node.js mongodb copy

recorrer - la matriz de objetos javascript no ha cambiado



javascript getelementbyid value (1)

Esta pregunta ya tiene una respuesta aquí:

Este código trata de obtener datos de MongoDB y cambiar el elemento ''_id'' por ''elemento id. Pero encontré que la matriz de objetos no ha cambiado.

router.get(''/loadList'', (req,res) => { Post.find({}, (err, list) => { //fetching data to list if(err) { return res.json({success : false}); } else { let new_list; //change _id to id new_list = list.map((obj) => { obj.id = obj._id; delete obj._id; return obj; }); console.log(new_list); /* // _id is still here and id is not created [{_id: ''58e65b2d1545fe14dcb7aac5'', title: ''asdfassafasdf'', content: ''dfasfdasdf'', time: ''2017-04-06T15:13:49.516Z'', writer: { _id: ''100975133897189074897'', displayName: ''Kiyeop Yang'' }, coords: { y: ''310.3999786376953'', x: ''139'' }, __v: 0 } ] */

pero este código funciona como lo que quiero

let list2 = JSON.parse(JSON.stringify(list)); new_list = list2.map((obj) => { obj.id = obj._id; delete obj._id; return obj; }); console.log(new_list); /* // _id is deleted and id is created { title: ''asdfassafasdf'', content: ''dfasfdasdf'', time: ''2017-04-06T15:13:49.516Z'', writer: { _id: ''100975133897189074897'', displayName: ''Kiyeop Yang'' }, coords: { y: ''310.3999786376953'', x: ''139'' }, __v: 0, id: ''58e65b2d1545fe14dcb7aac5'' } ] */ return res.json({ success : true, list }); } });

});

Creo que está relacionado con una copia profunda y superficial. Pero no sé qué lo causa exactamente.

Gracias


Eso es porque Post.find devuelve un objeto de mangosta basado en el Esquema creado. Lo que estás buscando es la función toObject que devuelve un objeto javascript puro. Entonces, en su callback call list.toObject(); Puede leer más sobre la función toObject en la documentación de mongoose: http://mongoosejs.com/docs/api.html#document_Document-toObject

Alternativamente, puede usar la opción Lean que le indicará a mongoose que devuelva un objeto javascript puro: http://mongoosejs.com/docs/api.html#query_Query-lean