我有像这样的猫鼬模型
name + "." + format
但我想验证数组是否与以下示例匹配:
valid_days: {
type: [Number]
},
或其中的某些组合,例如
[1,2,3,4,5,6,7]
我怎么能用mongoose做到这一点?
答案 0 :(得分:2)
您可以使用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");
});