Mongoose将默认设置为空对象

时间:2015-03-21 21:14:01

标签: mongoose

我正在尝试将star_info属性设置为对象类型(Mixed Schema)并使用

将其默认值设置为空对象
star_info: { type : Schema.Types.Mixed, default : { }}

在数据库中,保存文档时没有字段star_info。如何让mongoose设置默认值?

2 个答案:

答案 0 :(得分:63)

默认情况下(为了最小化MongoDB中存储的数据),Mongoose不会将空对象保存到数据库中。您可以通过在创建架构时将minimize标志设置为false来覆盖此行为。例如:

const schema = new Schema({
  star_info: { type: Schema.Types.Mixed, default: {} }
}, { minimize: false })

现在star_info将默认为空对象并保存到数据库。

http://mongoosejs.com/docs/guide.html#minimize

了解详情

答案 1 :(得分:1)

如果您不介意从数据库中忽略空对象,但希望在JSON中使用它们,则只需使用obj.toJSON({minimize: false})