Mongoose 将默认设置为空对象
Posted
技术标签:
【中文标题】Mongoose 将默认设置为空对象【英文标题】:Mongoose set default as empty object 【发布时间】:2015-05-25 03:17:56 【问题描述】:我正在尝试将 star_info
属性设置为对象类型(混合架构)并将其默认值设置为空对象使用
star_info: type : Schema.Types.Mixed, default :
在数据库中,保存文档时没有字段star_info
。如何让mongoose
设置默认值?
【问题讨论】:
【参考方案1】:默认情况下(为了尽量减少存储在 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
【讨论】:
我试过这个但得到:Can't customize discriminator option minimize (can only modify toJSON, toObject, _id, id)
我想要回到我生命的最后 30 分钟【参考方案2】:
如果您不介意从数据库中省略空对象,但希望它们出现在 JSON 中,只需使用 obj.toJSON(minimize: false)
【讨论】:
以上是关于Mongoose 将默认设置为空对象的主要内容,如果未能解决你的问题,请参考以下文章
我应该让我的对象属性为空还是为每种类型使用 CLR 默认值?