gpt4 book ai didi

javascript - 在批量插入期间有条件地抑制 SimpleSchema 的字段验证

转载 作者:行者123 更新时间:2023-11-30 21:10:08 28 4
gpt4 key购买 nike

我正在使用 Meteor 1.5MongoDB 3.2

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

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 );

通过使用 Aldeed 的 AutoForm 6.0 的简单 QuickForm,效果很好。

问题场景:

我执行批量插入,因为我有计数为 3000 的客户。我解析“有效”的 Excel 工作表,然后使用循环我尝试插入数据,但当正则表达式与手机号码不匹配时操作失败。

问题:

当我对已经附加了 SimpleSchema 的集合执行“批量插入”时,如何抑制 SimpleSchema 字段验证?此外,我希望客户在批量插入期间输入任何手机号,因为用户可能不知道正则表达式。

最佳答案

根据 documentation您只需要在批量插入期间禁止验证:

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

添加:

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

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

Documentation用于使用多个模式。

关于javascript - 在批量插入期间有条件地抑制 SimpleSchema 的字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46238014/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com