Estoy utilizando Mongoose y quiero eliminar la propiedad _id
de mi instancia de Mongoose antes de enviar la respuesta JSON al cliente.La clonación de objetos de mangosta y la eliminación de propiedades del subrayado no funciona?
Ejemplo:
var ui = _.clone(userInvite);
delete ui["_id"];
console.log(JSON.stringify(ui)); //still has "_id" property, why?
La anterior no funcionó.
Sin embargo, si lo hago:
var ui = JSON.parse(JSON.stringify(userInvite)); //poor man's clone
delete ui["_id"];
console.log(JSON.stringify(ui)); //"_id" is gone! it works!
No entiendo por qué llamar delete
en un objeto clonado utilizando subrayado no funciona, pero si lo hago el JSON.string hacky/JSON.parse, funciona.
¿Alguna idea de este comportamiento?
Mangosta Probablemente se arrastre y la implementación de '_id' como un captador/definidor en lugar de como una propiedad . Pruebe 'Object.getOwnPropertyDescriptor (userInvite," _id "). Get' – Raynos
También es imposible modificar cualquier propiedad de clonar objeto de mangosta. – Hill