我想从网站表单中将文档插入数据库。我有一个用猫鼬创建的模型,我只想将包含数据的属性保存在数据库中,而我不想保存空的属性。
这是我的模特
const localizationSchema = new Schema({
name: { type: String, required: true },
spins: [{ type: String }],
spinsForChild: [{ type: String }],
parent: { id: String, name: String },
localizationType: { type: String },
count: { type: Number, default: 0 },
countries: [{ id: String, name: String, cities: [{ id: String, name: String }] }]
});
const Localization = mongoose.model('Localization', localizationSchema);
当我尝试保存新文档时,尽管我没有在查询中发送它,但它会在数据库中创建所有属性。
Localization.create({
name: body.name,
localizationType: body.localizationType,
"parent.id": parent.id,
"parent.name": parent.name,
spins: spins,
spinsForChild: spinsForChild
}, function(err) {
if (err) return handleError(err);
res.redirect('/localizations');
});
例如,此代码在DB中插入一个称为“国家”的空数组。
我试图在模型声明中使用 strict:false ,但是没有用。
答案 0 :(得分:0)
您可以使用this answer。
但是,您尝试实现的东西似乎是反模式的,当您尝试将array update operators与undefined
数组一起使用时,可能会导致错误。因此,请小心使用。
祝你好运!