2015-09-25 57 views
0

比方说,我们有这个模式:为什么插入模式附加集合无效?

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

由于和蔼可亲的图书馆,你会说几小时的浪费工作... – Seraph

+1

我不在乎。你的问题充满了无用的绒毛,让它看起来很痛苦。你生气了,我们明白了,但请在这里保持专业。 –

回答

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

+0

我需要该对象作为Map,所以blackbox:true看起来像解决方案。 – Seraph