我有一些Mongoose模式,其中某些字段需要getter和setter。
为此,我设置了以下内容:
MySchema.set('toObject',{getters:true});
MySchema.set('toJSON',{getters:true});
每当我发送/读取MySchema.find()
的结果时,它都会向我提供具有相同值的_id
和id
字段。
我认为这是一个虚拟领域(如果我在这里错了,请纠正我)
我该如何制止?我不想处理每个对象并删除该字段。
答案 0 :(得分:0)
默认情况下,Mongoose会为每个模式分配一个
id
虚拟getter,它会将文档_id
字段转换为字符串,如果是ObjectIds,则返回其hexString。如果您不希望将id
getter添加到架构中,则可以在架构构建时禁用它以传递此选项。
创建架构时,只需将id
字段设置为false
:
var schema = new Schema({ name: String }, { id: false });