2017-08-26 75 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不接受驗證爲模式路徑名 –