Meteor collection2允许数字作为字符串

时间:2015-06-01 00:10:10

标签: meteor-collection2

我正在开始一个新的Meteor项目并使用Collection2进行验证。我定义了以下架构。当我插入标题为4的文档时,我希望它失败,因为我已将其指定为String。它并没有失败。我怀疑Meteor有一些基本方面我没有得到。仅供参考,如果我遗漏标题,我会得到预期的错误。

我的架构:

Timestamps = new Mongo.Collection('timestamps');

var Schemas = {};

Schemas.Timestamp = new SimpleSchema({
  title: {
    type: String,
    label: "Title",
    max: 500,
    optional: false
  },
  notes: {
    type: String,
    label: "Notes",
    max: 1000,
    optional: true
  }
});

Timestamps.attachSchema(Schemas.Timestamp);

以下代码应该失败并显示错误,标题必须是String。但是,它没有失败,并且值被存储为字符串“4”。

创建时间戳:

Timestamps.insert({title: 4, comments: "a comment"});

这是我发布和允许时间戳插入的方式。

Meteor.publish("timestamps", function() {
    return Timestamps.find();
});

Timestamps.allow({
    insert: function(timestamp) {
        return true;
    }
});

1 个答案:

答案 0 :(得分:0)

查看文档:

https://github.com/aldeed/meteor-collection2#skip-conversion-of-values-to-match-what-schema-expects

Collection2有一个选项(默认为true)来尝试匹配数据类型