mongoose 中如何把 _id变成 id 呈现出来 (已解决)
mongoose 中如何把 _id变成 id 呈现出来,我试过了虚拟值,别名这些,发现都是一起消失跟呈现的。
我期望返回的是 id 而不是 _id,但 id 的值是 _id 的。
谢谢!
5 回复
https://stackoverflow.com/questions/11557804/mongoose-virtual-fields-included-in-tojson-by-default-schemaoptions-tojson-virt 设置虚拟属性返回, Schema.set(‘toJSON’, { virtuals: true }) Schema.set(‘toObject’, { virtuals: true })
@HongYangHT 谢谢,这个方法我试过,是会返回 id,但是同时也会返回 _id ,囧~
schema.pre(‘find’,callback)
来自酷炫的 CNodeMD
@AnzerWall 谢谢~
核心代码是这个:
TestSchema.options.toObject = {
transform(doc, ret, options) {
virtuals: true,
ret.id = doc.id;
delete ret._id;
return ret;
}
};
或者:
TestSchema.options.toJSON = {
virtuals: true,
transform(doc, ret) {
ret.id = ret._id
delete ret._id
}
}