正则表达式验证失败但没有正则表达式导致集合更新流星失败

Collection update Meteor failure from failed regex validation but no regex

我正在使用 Meteor 模式,该模式的字段定义如下:

export const MyCollectionSchema = new SimpleSchema({
  myField: {
    optional: true,
    type: String,
  },
...
});

我们还附加了以下行为:

export const MyCollection = new Meteor.Collection('my_collection');

MyCollection.deny({
  insert: () => true,
  update: () => true,
  remove: () => true,
});

MyCollection.attachBehaviour('timestampable', {
  createdAt: 'insertedAt',
  createdBy: 'insertedBy',
  updatedAt: 'modifiedAt',
  updatedBy: 'modifiedBy',
});

MyCollection.attachSchema(MyCollectionSchema);

我正在尝试通过此调用更新现有项目:

 MyCollection.update(
    { _id: myId },
    { $set: {
      myField: myFieldValue,
      modifiedAt: new Date().toString(),
      modifiedBy:  userId,
    } },
  );

但由于正则表达式验证失败,它一直失败:

(Error: Modified by failed regular expression validation in my_collection update)

我在这里没有使用正则表达式,对流星也不是很熟悉,所以我不确定我是否应该在这里使用正则表达式。帮助:/

如果我阅读了您正在使用的软件包的文档(我假设是这个 https://github.com/zimme/meteor-collection-timestampable),那么整个想法就是您不需要设置 modifiedAtmodifiedBy。这就是 collection-timestamable 包会自动为你做的。该错误可能会发生,因为该包不喜欢您覆盖它的字段。我会尝试:

 MyCollection.update({ _id: myId }, {$set: {myField: myFieldValue}});