Tôi đang sử dụng Mongoose và tôi muốn xóa thuộc tính _id
khỏi cá thể Mongoose của mình trước khi gửi phản hồi JSON cho khách hàng.Nhân bản vô tính của các đối tượng Mongoose và các thuộc tính xóa không hoạt động?
Ví dụ:
var ui = _.clone(userInvite);
delete ui["_id"];
console.log(JSON.stringify(ui)); //still has "_id" property, why?
Các trước đã không làm việc.
Tuy nhiên, nếu tôi làm:
var ui = JSON.parse(JSON.stringify(userInvite)); //poor man's clone
delete ui["_id"];
console.log(JSON.stringify(ui)); //"_id" is gone! it works!
Tôi không hiểu tại sao gọi delete
trên một đối tượng nhân bản sử dụng gạch không làm việc, nhưng nếu tôi làm JSON.string hacky/JSON.parse, nó hoạt động.
Bất kỳ suy nghĩ nào về hành vi này?
Có lẽ một loại chồn được trolling bạn và thực hiện '_id' như một getter/setter thay vì sau đó là một tài sản . Hãy thử 'Object.getOwnPropertyDescriptor (userInvite," _id "). Get' – Raynos
Sửa đổi bất kỳ thuộc tính nào của đối tượng mong sao chép cũng không thể. – Hill