2016-01-09 65 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

只是一个想法 - 你可能不得不这样做客户端和服务器端。 –