Я использую пакеты aldeed:collection2
и aldeed:simple-schema
. Я хочу проверить документ по схеме. Моя схема содержит, например. строковое поле с массивом allowValues и массивом вложенных объектов, описываемых подсхемой. Как это:
...
type: {
type: String,
allowedValues: [ 'A', 'B', 'C' ],
defaultValue: 'A',
index: 1,
},
nestedStuff: {
type: [ new SimpleSchema(nestedStuffSchema.schema(Meteor, SimpleSchema)) ],
defaultValue: [],
},
...
У меня есть «плохой» документ, который, например. "D" в поле type
и недопустимые вложенные элементы массива.
На клиенте я пытаюсь:
Contacts.simpleSchema().namedContext().validate(badDoc);
и он возвращает true
. SimpleSchema говорит, что документ действителен, хотя его поля не соответствуют схеме. Проверка «плохого» поля type
по отдельности также возвращает true
. Что я делаю не так? Почему SimpleSchema может считать случайные вещи действительными?