2017-09-15 2 views
1

中にSimpleSchemaのためのフィールドの検証を抑制する。 Aldeedのオート6.0を使用して、簡単なQuickFormのでは条件付きで、私はクライアントのコレクションに挿入する<strong>で、私は簡単なスキーマの下に使用していますMongoDBの3.2</strong></p> <p>を<strong>流星1.5</strong>を使用しています一括挿入

import { Mongo } from 'meteor/mongo'; 
import SimpleSchema from 'simpl-schema'; 
SimpleSchema.extendOptions(['autoform']); 

export const Clients = new Mongo.Collection('Clients'); 

ClientsSchema = new SimpleSchema({ 
    "gstNo": { 
    type: String, 
    label: "GST No.", 
    regEx: /^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$/, 
    optional: true, 
    }, 
    "mobile": { 
    type: String, 
    label: "Mobile 1", 
    regEx: /^[789]\d{9}$/, 
    } 
}); 

Clients.attachSchema(ClientsSchema); 

は、それは素晴らしい作品。

問題のシナリオ:

私は数3000を持つクライアントを持っているように、私は「有効」シートをエクセル、その後、ループを使用して、私はデータを挿入しようとしたが、正規表現がマッチしなかった場合の動作が失敗した解析一括挿入を行いますモバイル番号について

質問:

私はすでにそれに接続されているSimpleSchemaを持っているコレクションの「一括挿入」を実行するとSimpleSchemaフィールド検証をいかに抑制しますか?また、私は顧客が正規表現を知らないかもしれないので一括挿入中に任意のモバイルを入れてもらいたい。

答えて

1

documentationによると、あなたは自分の一括挿入時の検証を抑止する必要があります。

Clients.insert(doc, { validate: false }); 

を追加しました:

あなたは文書全体の検証を抑制したくない場合は、2番目の添付することができますスキーマを同じコレクションに追加し(特定のフィールドの検証を削除して)、バルク挿入時にスキーマに切り替えます。

Clients.attachSchema(anotherSchema, { selector: { type: 'trustedMobile' } }); 
... 
Clients.insert(doc, { selector: { type: 'trustedMobile' } }); 

Documentation複数のスキーマを使用する場合。

+0

あなたは休憩を取る/寝る/離れて行く、私はあなたが非常に積極的にSO LOLに参加して見つける。冗談だ!。 Btwは私に答えをテストさせてください。しかし、それは答えが適用されるようです。 –

+0

あなたについて同じことが言えるかもしれません:) Btw、別の解決策を追加するために私の答えを更新しました。 – Styx

+0

'collection2-core 2.0.1'でも使えますか?私は最新の 'Autoform 6.2.0'を使用しています。それのためのビルドは失敗している –

関連する問題