mongoose"_id"字段无法删除

Eth*_* Wu 3 mongoose mongodb node.js

我想使用解决方案返回"id"字段而不是"_id"

MongoDB:输出'id'而不是'_id'

以下是我的代码:

ScenicSpotSchema.virtual('id').get(function () {
    var id = this._id.toString();
    delete this._id;
    delete this.__v;
    return id;
});
Run Code Online (Sandbox Code Playgroud)

但是响应仍然有字段"id"和"_id",似乎delete没有生效.为什么?

小智 6

我估计你需要的是jSON.这应该做你想要的:

schema.options.toJSON = {
  transform: function(doc, ret) {
    ret.id = ret._id;
    delete ret._id;
    delete ret.__v;
  }
};
Run Code Online (Sandbox Code Playgroud)