2017-08-26 1 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'はスキーマのパス名として使用できません。 Btw私はmongooseを使用しています4.11.7 –

+0

@ AlpCoskun broの回答が更新されました! 構文を書きました –

+0

同じエラーです。 Mongooseはスキーマのパス名としてvalidateを受け入れません –