mongoose 中如何把 _id变成 id 呈现出来 (已解决)
发布于 6 年前 作者 imruxin 4147 次浏览 来自 问答

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
    }
  }
回到顶部