我有一个使用mongoose 5.x的NODE.JS项目
我的模型有toJSON方法,它完美地删除了_id和__v字段
mySchema.method("toJSON", function toJSON() {
const {__v, _id, ...object} = this.toObject();
return {
id: _id,
...object
};
});因此,当从数据库中获取数据时:
const data = myModel.findOne({_id: id});我得到了一个对象,当序列化到用户时:
res.json(data);它不包含所需的_id和__v字段。
问题是当我使用lean()时
const data = myModel.findOne({_id: id}).lean();data对象包含这些字段。
我可以在使用lean时手动删除它们
但我更倾向于找到一种方法,在这两种情况下都使用相同的机制来清理数据对象。
有什么建议吗?
提前谢谢。
发布于 2020-09-04 20:51:41
尝试此操作以从文档中检索_id
myModel.findOne({_id: id}, function(err, doc) {
if(err)
return 'do something with this err'
console.log(doc._id)
})https://stackoverflow.com/questions/63741439
复制相似问题