0

假设,我们有这个模式:

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

我想在MyCollection. 例如 :

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

我们最终得到这个:

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

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

Simple-schema 没有报错(collection2)那为什么无效呢?

4

2 回答 2

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

于 2015-09-25T12:23:07.383 回答
0

以下是帮助您了解更多信息的参考:

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

于 2015-09-25T20:00:57.837 回答