添加文档时如何从 mongoDB 中删除空字段?

How to remove empty fields from mongoDB while adding a document?

如果文档是空的,我想从文档中删除语言。

  const departmentSchema = new mongoose.Schema({
  Depart: { type: String, required: true, minlength: 5, maxlength: 50 },
  Languages: [languageSchema]
});

我已经试过了Languages: { type: [languageSchema], required: false }但是没有成功。

提前致谢:)

设置minimize选项为false,如果有任何空对象mongoose会删除这个字段,或者尝试将值设置为undefined


const departmentSchema = new mongoose.Schema({
  Depart: { type: String, required: true, minlength: 5, maxlength: 50 },
  Languages: [languageSchema],
  { minimize: false }
});

或者你可以在前面的应用程序上查看是否有任何语言添加language

const data;
if(departament.languages.length > 0) {
  data.language = departament.languages;
}

一如既往地自己找到了解决方案:p

const departmentSchema = new mongoose.Schema({
  Depart: { type: String, required: true, minlength: 5, maxlength: 50 },
  Languages: [languageSchema]
});

departmentSchema.pre('save', function (next) {
  if (this.isNew && 0 === this.Languages.length) {
    this.Languages= undefined;                                                                                                                                   
  }
  next();
})

这样就可以了。 ^