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