在Mongoose中,如何声明dynamicSchema
我是Mongoose的新手,在官方文档中我没有发现任何与我需要的东西有关的东西。
我怎样才能声明一个dynamic的子模式?
例如:
var A = new Schema({ name : String, subtype : String, description : String }); var B = new Schema({ name : String, description : String }); var C = new Schema({ name : String, type : [if(type.value == 'A') then uses Schema-A; if(type.value == 'B') then uses Schema-B; ] });
希望这是有道理的。
提前致谢。
你为什么需要这个?
在Javascript中,您不需要考虑对象的类。
你只需要知道types,当你想要初始化它,当你想在MongoDBsearch。
您可以将模式的自定义部分的types设置为{},然后validationstream入的不同结构。请参阅此要点 。 它不同于为不同的情况设置不同的模式,但它应该达到目的。 从本质上讲,通过这样设置,你基本上是说文档的这个部分没有Schema。 将模式视为文档的确定部分,这里唯一确定的部分是dynamic部分的占位符。
我认为,您也可以将每个不同的架构创build为不同的架构,但存储在同一个集合中,并预先select适当的架构。 我从来没有尝试过,但应该允许,因为基础MongoDB的无模式性质。
- 如何发布和更新模式数组中的模式并打印它?
- mongodb mongoose nodejs express4为什么自动在Object Array字段中插入一个_id?
- 如何用2d geo索引正确定义Mongoose模式中的数组对象
- MongoDB + Node.js:如何从一个外部文件使用架构为另一个架构?
- 如何validationMongoose模式中的对象键和值?
- foo.find(…).execFind不是函数 – mongoose模式模型
- 是否有可能为Mongoose SchemaTypes禁用自动types转换?
- 如何在OS X上使用node.js检测隐藏的文件
- 在mongoose.js中共享和重用模式部分的策略