猫鼬将默认设置为空对象

Mongoose set default as empty object

我正在尝试将 star_info 属性设置为对象类型(混合架构)并使用

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

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

默认情况下(为了尽量减少存储在 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

阅读更多内容

如果您不介意从数据库中遗漏空对象,但又想在 JSON 中使用它们,只需使用 obj.toJSON({minimize: false})