CNode

mongoose 中如何把 _id变成 id 呈现出来 (已解决)

问答
Iimruxin发布于8 年前最后回复8 年前5 回复4786 浏览0 收藏

mongoose 中如何把 _id变成 id 呈现出来,我试过了虚拟值,别名这些,发现都是一起消失跟呈现的。

我期望返回的是 id 而不是 _id,但 id 的值是 _id 的。

谢谢!

查看回复

回复 (5)

H
HongYangHT#1·8 年前

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 })

I
imruxin#3·8 年前
引用 HongYangHThttps://stackoverflow.com/questions/11557804/mongoose virtual fields included in tojson by defau...

@HongYangHT 谢谢,这个方法我试过,是会返回 id,但是同时也会返回 _id ,囧~

Z
zswnew#4·8 年前

schema.pre('find',callback)

来自酷炫的 CNodeMD

I
imruxin#5·8 年前
引用 AnzerWallhttps://cnodejs.org/topic/5af14c0102591040485babdf

@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
    }
  }
参与回复
登录后即可参与回复。登录