如何将Mongoose文档转换为普通对象?

我有一个猫鼬的文档,该文档要在JSON编码之前扩展并作为响应发送出去。如果我尝试向文档添加属性,则将其忽略。该属性不会出现无法Object.getOwnPropertyNames(doc)进行正常扩展的情况。奇怪的是,它JSON.parse(JSON.encode(doc))可以正常工作并返回具有所有正确属性的对象。有一个更好的方法吗?

老丝2020/03/23 20:00:55

您还可以对对象进行字符串化,然后再次解析以生成普通对象。例如:

const obj = JSON.parse(JSON.stringify(mongoObj))
伽罗乐2020/03/23 20:00:55

为了从猫鼬文档中获取普通对象,我使用_doc了如下属性

mongooseDoc._doc  //returns plain json object

我尝试过,toObject但是它给了我不需要的功能,参数和所有其他东西。

老丝阿飞2020/03/23 20:00:55

猫鼬Model继承自Documents,后者有一个toObject()方法。我相信您要寻找的应该是的结果doc.toObject()

http://mongoosejs.com/docs/api.html#document_Document-toObject

蛋蛋猿2020/03/23 20:00:55

如果属性不在模型中的快速方法:

document.set( key,value, { strict: false });