我从mongoose文档中读到,可以创建自定义模式类型以添加到已存在的模式类型中.
正如我所建议的那样,我试着研究一下mongoose-long的例子:https://github.com/aheckmann/mongoose-long
我需要在我开发的应用程序中使用它,其中我有一个mongoose模型的配置文件.该配置文件有几个字段,如name,surname等等MultiValueField.A MultiValueField是具有以下结构的对象:
{
current : <string>
providers : <Array>
values : {
provider1 : value1,
provider2 : value2
}
}
Run Code Online (Sandbox Code Playgroud)
上面的结构有一个允许的提供者列表(按优先级排序),从中可以检索字段的值.当前属性会跟踪当前选择哪个提供程序作为字段的值.最后,对象值包含每个提供程序的值.
我在node.js中定义了一个对象,其构造函数将上面的结构作为参数,并提供了许多有用的方法来设置新的提供者,添加值等等.
我的个人资料的每个字段都应该使用不同的提供者列表进行初始化,但我还没有找到方法.
如果我定义MultiValueField为Embedded Schema,我可以只将每个字段定义为Array.此外,在使用提供者列表创建配置文件时,我无法初始化每个字段.
我认为最好的解决方案是定义一个SchemaType MultiValueFieldType具有返回a的强制转换函数MultiValueField object.但是,如何定义这样的自定义架构类型?在配置文件的架构中定义时,如何使用自定义选项?
我已经在mongoose Google网上发布了一个问题,询问如何创建自定义架构类型:https://groups.google.com/forum/? fromgroups#!topic / mongoose -orm/fCpxtKSXFKc