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

时间:2016-11-10 10:12:18

标签: node.js mongodb express mongoose

我使用Mongoose查询我的数据,然后通过我的快速API将其作为响应返回。我想防止API响应中出现空属性。有没有一种很好的方式通过Mongoose做到这一点?建议使用快递和推荐的方法是什么?猫鼬?

1 个答案:

答案 0 :(得分:1)

您可以覆盖toJSON mongoose架构方法,以从返回的json中删除属性。

<强> @example

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