2015-09-25 30 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

相關問題