从Mongoose查询结果中排除空属性

我使用Mongoose查询数据,然后通过我的快速API作为响应返回。 我想阻止在API响应中出现空属性。 有没有一种很好的方式通过mongoose做到这一点? 推荐使用Express&Mongoose的方法是什么?

您可以重写toJSONmongoose模式方法来从返回的json中删除属性。

@例

 YourSchemaName.methods.toJSON = function() { var obj = this.toObject(); if (obj.SOME_FIELD_NAME === null) delete obj.SOME_FIELD_NAME; return obj; } 

嵌套对象处理

在这里,你有代码将删除您拥有的属性上的每个null数据。

 const removeEmpty = (obj) => { Object.keys(obj).forEach(key => (obj[key] && typeof obj[key] === 'object') && removeEmpty(obj[key]) || (obj[key] === '' || obj[key] === null) && delete obj[key] ); return obj; }; 

来源 : how-do-i-remove-all-null-and-empty-string-values-from-a-json-object