2017-02-11 6 views
1

私はこの検証配列の内容マングースモデル

valid_days: { 
    type: [Number] 
    }, 

のようなマングースのモデルを持っているが、私は、配列には、以下の例で一致した場合validadeたい:

[1,2,3,4,5,6,7] 

または本のいくつかの組み合わせを

のように、
[1,3,5] 

どのように私はマングースでこれを行うことができますか?

答えて

0

あなたはmongoose custom validatorsを使用して、配列内の唯一のいくつかの値を検証することができます。この例

var possibilities = [1, 2, 3, 4, 5, 7]; 

var testSchema = new mongoose.Schema({ 
    valid_days: { 
     type: [Number], 
     validate: { 
      validator: function(value) { 
       for (var i = 0; i < value.length; i++) { 
        if (possibilities.indexOf(value[i]) == -1) { 
         return false; 
        } 
       } 
       return true; 
      }, 
      message: '{VALUE} is not a valid day' 
     } 
    }, 
}); 

を:

Test.create({ "valid_days": [1, 3, 5, 6] }, function(err, res) { 
    // this trigger error : 6 not in possibilities array 
    if (err) 
     console.log(err); 
    else 
     console.log("OK"); 
}); 

Test.create({ "valid_days": [1, 3, 5] }, function(err, res) { 
    // ok 1,3,5 are in possibilities array 
    if (err) 
     console.log(err); 
    else 
     console.log("OK"); 
}); 
+0

はありがとうございました!正確に私が必要なもの! –