2016-01-09 90 views
0

我使用的是第三方軟件包定義這樣的模式已構建的架構:如何修改

People.schema = new SimpleSchema({ 
    firstName: { 
    type: String, 
    optional: false 
    } 
    //Many other fields defined... 
}); 

我想修改它有optional: true名字:在不改變源代碼爲第三方包。

我可以使用People.schema.pick來獲取除firstName之外的所有字段的模式,然後將此模式與firstName作爲可選模式結合使用。但是這種方法需要列出pick函數中架構中的所有字段,這很枯燥。

有沒有更好的方法來完成這個?

+0

或者你可以逆向工程架構對象,並戳「真正」到'firstName.optional' –

+0

謝謝@MichelFloyd,我用我的答案。 – zenev

回答

0

我可以編輯對象簡單模式創建就像任何其他對象: People.schema._schema.firstName.optional = true

重寫該字段。

+0

只是一個想法 - 你可能不得不這樣做客戶端和服務器端。 –