2016-07-27 4 views
1

私はaldeed:collection2と​​パッケージを使用しています。私はスキーマに対してドキュメントを検証したいと思います。私のスキーマには、 allowedValues配列の文字列フィールドと、ネストされたオブジェクトの配列(サブスキーマで記述)。このように:流星SimpleSchemaはランダムなものが有効だと言います

...

type: { 
    type: String, 
    allowedValues: [ 'A', 'B', 'C' ], 
    defaultValue: 'A', 
    index: 1, 
    }, 
nestedStuff: { 
    type: [ new SimpleSchema(nestedStuffSchema.schema(Meteor, SimpleSchema)) ], 
    defaultValue: [], 
    }, 

...

私は、例えば持っている '悪い' ドキュメントを持っていますtypeの "D"フィールドと無効なネストされた配列アイテム。

クライアントで私はしようとしている:

Contacts.simpleSchema().namedContext().validate(badDoc); 

、それはtrueを返します。 SimpleSchemaは、そのフィールドがスキーマに従わないにもかかわらず、ドキュメントが有効であると言います。 'bad' typeフィールドを個別に検証すると、trueが返されます。 私は何が間違っていますか?なぜSimpleSchemaはランダムなものが有効であると仮定することができますか?

答えて

0

あなたは文字列の配列を検証したい場合は、それはあなたが参照を提供することができるだろう

type: { 
    type: [String], 
    allowedValues: [ 'A', 'B', 'C' ], 
    defaultValue: ['A'], 
    index: 1, 
    }, 
nestedStuff: { 
    type: [ new SimpleSchema(nestedStuffSchema.schema(Meteor,SimpleSchema)) ], 
defaultValue: [], 
    }, 

おかげ

+0

を助けるかもしれない[] .See以下のコード内の文字列を維持する必要がありますか? – RNA

関連する問題