Meteor Collections SimpleSchema:数组字段的allowedValues是否作用于元素?
问题解答:SimpleSchema中数组字段的allowedValues是否校验每个元素?
嘿,这个问题问得特别精准!我对Meteor的SimpleSchema用得挺多的,直接给你明确结论——是的,allowedValues的校验规则会严格作用于数组里的每一个元素。
拿你给出的这段Schema定义举例:
permissions: { type: [String], allowedValues: ['admin', 'normal'] }
当你尝试插入或更新包含不符合规则元素的数组时,比如permissions: ['admin', 'editor'],SimpleSchema会立刻抛出校验错误,因为editor不在你指定的允许值列表里。它会遍历数组中的每一项,逐一检查是否符合allowedValues的要求,不会放过任何一个不符合规则的元素。
额外提个小细节:如果你的业务场景需要数组可以为空,或者限制数组的长度,可以搭配optional: true、minCount、maxCount这些属性一起使用,但这完全不影响allowedValues对数组元素的逐个校验逻辑。
要是你之后需要对数组元素做更复杂的校验(比如嵌套对象的校验),还可以用schema属性定义嵌套的子Schema,但针对你当前的枚举值校验需求,allowedValues就已经完美胜任啦。
内容的提问来源于stack exchange,提问作者Gobliins
相关产品推荐
相关产品推荐

