用猫鼬插入文档,而不用空属性初始化模型

时间:2018-10-31 14:31:14

标签: node.js mongodb mongoose

我想从网站表单中将文档插入数据库。我有一个用猫鼬创建的模型,我只想将包含数据的属性保存在数据库中,而我不想保存空的属性。

这是我的模特

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 ,但是没有用。

1 个答案:

答案 0 :(得分:0)

您可以使用this answer

但是,您尝试实现的东西似乎是反模式的,当您尝试将array update operatorsundefined数组一起使用时,可能会导致错误。因此,请小心使用。

祝你好运!