如何从MongoDB + Node.js + Mongoose获取修改的json输出

Amo*_*rni 2 json mongoose mongodb node.js

考虑我的集合在MongoDB中存储如下:

  { 
    _id: 'Unique_Value',
    FieldMONGO1: 'ngfn',
    FieldMONGO2: { SomeKey: ['val1','val2','val...']  },
  }
Run Code Online (Sandbox Code Playgroud)

当我在Mongoose的Model Instance上使用find方法检索时.我得到以下JSON输出:

  { 
    _id: 'Unique_Value',
    FieldMONGO1: 'NAME_value',
    FieldMONGO2: { SomeKey: ['val1','val2','val...']  },
  }
Run Code Online (Sandbox Code Playgroud)

两者完全相同.

问:有没有什么办法让我可以改变字段名称,如FieldMONGO1FirstName,FieldMONGO2NewName&_idIdentityNo

所以我的输出将是这样的:

  { 
    IdentityNo: 'Unique_Value',
    FirstName: 'ngfn',
    NewName: { SomeKey: []  },
  }
Run Code Online (Sandbox Code Playgroud)

知道解决方案:是按原样获取JSON输出,然后在Node.js代码中更改字段(属性)名称.但问题在于,它变成了阻塞代码.如果请求大量数据,这可能会在服务器上产生开销.

任何人都可以帮我找出一些有效的方法吗?

提前谢谢

mit*_*esh 5

检查出Virtuals猫鼬.

查看参考链接中的示例.

如果你调整像

urSchema.virtual('FirstName').get(function () {
  return this.FieldMONGO1;
});
Run Code Online (Sandbox Code Playgroud)

你能行的.

在SO上查看这个答案.