为什么插入到模式附加集合中的插入无效?

时间:2015-09-25 12:16:16

标签: meteor simple-schema

让我们说,我们有这个架构:

Schemas.MyCollection = new SimpleSchema({
    something: {
        type: Object
    }
});

我想在MyCollection中添加内容。例如:

var myobj = {
    aaaaaa: 11111,
    bbbbbb: 22222
};
MyCollection.insert({something: myobj});

我们最终得到了这个:

{
    _id: "someId",
    something: {}
}

当我禁用简单模式检查(collection2)时,一切都按预期工作。

简单架构没有报告错误(collection2),为什么它无效?

2 个答案:

答案 0 :(得分:4)

@Seraph您的架构错误

Schemas.MyCollection = new SimpleSchema({
    something: {
        type: Object
    },

    'something.aaaaa': {
      type: String
    }
});

等等,您必须编写对象拥有的每个属性,或者如果您不想验证对象,则可以执行blackbox: true

something: {
  type: Object,
  blackbox: true
}

此外,如果是服务器端操作,您可以执行myCollection.insert(doc, {validate: false});

只需阅读文档https://atmospherejs.com/aldeed/collection2:)

答案 1 :(得分:0)

以下是帮助您了解更多内容的参考资料:

  

https://github.com/aldeed/meteor-simple-schema#blackbox