2017-09-15 25 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 필드 유효성 검사를 억제하기 위해? 또한 사용자가 정규식을 알지 못할 수도 있으므로 대량 삽입 중에 모든 모바일을 넣으려고합니다.

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

추가 : 당신이 전체 문서 유효성 검사를 억제하지 않으려면

것은, 당신이 두 번째 첨부 할 수 있습니다

답변

1

documentation에 따르면 당신은 당신의 대량 삽입하는 동안 유효성 검사를 억제해야 스키마를 동일한 컬렉션에 추가하고 (특정 필드에 대한 유효성 검사가 제거됨) 대량 삽입 중에 해당 스키마로 전환하십시오.

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'을 사용하고 있습니다. 그것을위한 빌드가 실패했습니다 –