添加文档时如何从 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();
})
这样就可以了。 ^
如果文档是空的,我想从文档中删除语言。
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();
})
这样就可以了。 ^