2017-08-26 78 views
0

我可以创建封顶的模式是这样的: -猫鼬加盖子阵

var deviceSchema = new mongoose.Schema({ 
    name: String, 
    vendor: String, 
    type: String, 
    backups: [{ 
     date: String, 
     rawbackup: String 
    }] 
}, { 
    capped: true, 
    size: 10485760, 
    max: 20 
}) 

但我想只有上限备份阵列。我试过这个: -

var deviceSchema = new mongoose.Schema({ 
    name: String, 
    vendor: String, 
    type: String, 
    backups: [{ 
      date: String, 
      rawbackup: String 
     }, 
     { 
      capped: true, 
      size: 10485760, 
      max: 20 
     } 
    ] 
}) 

它还在增长。我如何限制一个子数组?

回答

0
var deviceSchema = new mongoose.Schema({ 
      name: String, 
      vendor: String, 
      type: String, 
      backups: [{ 
       date: String, 
       rawbackup: String, 
       validate: arrayLimit 
      }] 
     }, 

     function arrayLimit(val) { 
      return val.length <= 20; 
     } 

您可以设置架构validation

+0

错误:'validate'不能用作模式路径名。顺便说一句我正在使用猫鼬4.11.7 –

+0

@AlpCoskun兄弟答案更新!我写过句法 – 2017-08-26 16:45:14

+0

同样的错误。 Mongoose不接受验证为模式路径名 –