首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在大容量插入期间有条件地抑制SimpleSchema的字段验证

问在大容量插入期间有条件地抑制SimpleSchema的字段验证
EN

Stack Overflow用户
提问于 2017-09-15 11:01:08
回答 1查看 101关注 0票数 1

我使用的是Meteor 1.5和MongoDB 3.2

我使用下面的简单模式插入到客户端集合中。

代码语言:javascript
复制
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 );

使用简单的QuickForm,使用Aldeed的AutoForm 6.0,它的工作效果很好。

问题场景:

我执行批量插入,因为我有客户端计数3000。我分析了“有效”excel表,然后使用循环尝试插入数据,但是当regex与Mobile不匹配时,操作失败。

问题:

当我对已经附加了一个SimpleSchema的集合执行“大容量插入”时,如何抑制SimpleSchema字段验证?此外,我希望客户在批量插入期间放置任何Mobile,因为用户可能不知道regex。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-15 11:09:25

根据文档,您只需在批量插入期间取消验证:

代码语言:javascript
复制
Clients.insert(doc, { validate: false });

添加:

如果不想取消整个文档验证,可以将第二个模式附加到同一个集合(对特定字段进行删除验证),并在批量插入期间切换到它:

代码语言:javascript
复制
Clients.attachSchema(anotherSchema, { selector: { type: 'trustedMobile' } });
...
Clients.insert(doc, { selector: { type: 'trustedMobile' } });

用于使用多个架构的文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46238014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档