繁体   English   中英

在猫鼬中如何声明动态模式

[英]In Mongoose how declare dynamic Schema

我是Mongoose的新手,在官方文档中我没有发现任何与我需要的东西有关的东西。

如何声明动态的子架构?

例如:

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;
                  ]
});

希望有道理。

提前致谢。

您可以将架构的自定义部分的类型设置为{},然后验证流入的不同结构。请参见要点 它不像针对不同情况设置不同的模式那样好,但是应该可以达到目的。 本质上,通过这种方式进行设置,实际上是在说文档的那部分没有架构。 想想文档的架构作为确定的部分,这里唯一确定的组成部分,是动态部分的占位符。

我认为,您还可以将每个不同的结构创建为不同的架构,但存储在同一集合中,并预先选择适当的架构。 我从来没有尝试过,但是由于底层MongoDB的无模式本质,应该允许它。

为什么需要这个?

在Javascript中,您无需考虑对象的类。

您只需要在初始化时以及在MongoDB中进行搜索时就知道类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM