วิธีที่ดีกว่าในการแก้ปัญหาเช่นนี้คือใช้doc.toObject()
สิ่งนี้
doc.toObject({ getters: true })
ตัวเลือกอื่น ๆ ได้แก่ :
getters:
ใช้ getters ทั้งหมด (path และ virtual getters)
virtuals:
ใช้ getters เสมือน (สามารถแทนที่ตัวเลือก getters)
minimize:
ลบวัตถุที่ว่างเปล่า (ค่าเริ่มต้นเป็นจริง)
transform:
ฟังก์ชั่นการแปลงเพื่อนำไปใช้กับเอกสารที่เป็นผลลัพธ์ก่อนส่งคืน
depopulate:
depopulate เส้นทางที่มีประชากรแทนที่ด้วย refs เดิมของพวกเขา (ค่าเริ่มต้นเป็นเท็จ)
versionKey:
ไม่ว่าจะรวมคีย์รุ่น (ค่าเริ่มต้นเป็นจริง)
ตัวอย่างเช่นคุณสามารถพูดได้
Model.findOne().exec((err, doc) => {
if (!err) {
doc.toObject({ getters: true })
console.log('doc _id:', doc._id)
}
})
และตอนนี้มันจะทำงาน
สำหรับการอ้างอิงดูที่: http://mongoosejs.com/docs/api.html#document_Document-toObject