【问题标题】:Mongoose set default as empty objectMongoose 将默认设置为空对象
【发布时间】:2015-05-25 03:17:56
【问题描述】:

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

star_info: { type : Schema.Types.Mixed, default : { }}

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

【问题讨论】:

    标签: 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})

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 2011-10-27
      • 2012-09-20
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      • 2021-05-10
      • 1970-01-01
      相关资源
      最近更新 更多