mongodb 如何在嵌入式文档mongoose模式中设置数据默认值

5vf7fwbs  于 2023-01-01  发布在  Go
关注(0)|答案(1)|浏览(185)

我正在使用嵌入式文档,并且已经为此模型架构设置了默认数据,但是当我尝试创建新文档时,集合返回空数组。当新文档添加到mongoose的模型架构中时,如何设置默认集合?
我的模型架构定义:

const ActionSchema= new mongoose.Schema({
  canEdit: {
    type: Boolean,
    default: true
  },
  canDelete: {
    type: Boolean,
    default: false
  },
  canMention: {
    type: Boolean,
    default: true
  }
});

const PostSchema = new mongoose.Schema({
  title: String,
  detail: String,
  author: Schema.Types.ObjectId,
  action: [ActionSchema]
});

它应该是自动添加的默认数据,每次一个新的职位是这样添加的:

{
  title: 'Happy New Year',
  detail: 'Happy New Year 2024',
  author: ObjectId(...),
  action: [
    {
       canEdit: true,
       canDelete: false,
       canMention: true
    }
  ]
}
bxgwgixi

bxgwgixi1#

您只指定type为ActionSchema的数组,但为什么它要在数组中创建项目呢?如果您希望这样,您还需要为action字段指定默认值:

const PostSchema = new mongoose.Schema({
  title: { type: String },
  detail: { type: String },
  author: { type: Schema.Types.ObjectId },
  action: { 
    type: [ActionSchema], 
    default: [
      {
        canEdit: true,
        canDelete: false,
        canMention: true
      }    
    ]
  }
});

相关问题