如何拥有引用另一个变量模型的猫鼬数据库模型?

时间:2019-03-25 09:18:52

标签: mongoose mongoose-schema

我有一个网站的数据库,我将所有内容存储在一个数组中(此内容可对特权用户进行编辑)数组有一个称为type的字段,它是Component的类型,并且还有一个包含所有内容的数组额外的信息。

这是Data.json:

[
    {
    "type" :"Navbar", 
    "extra":[]
    },
    {
    "type" :"Header",
    "extra":[ 
                "Welcome To Our Studio!",
                "IT'S NICE TO MEET YOU"
            ]
    },
    { 
    "type" :"Services",
    "extra":[
            "SERVICES",
            "Lorem ipsum dolor sit amet consectetur.",
            "E-Commerce",
            "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima maxime quam architecto quo inventore harum ex magni, dicta impedit.",
            "Responsive Design",
            "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima maxime quam architecto quo inventore harum ex magni, dicta impedit.",
            "Web Security",
            "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima maxime quam architecto quo inventore harum ex magni, dicta impedit."
            ]
    },
    {
    "type" :"About",
    "extra":
        [
            "About",
            "Lorem ipsum dolor sit amet consectetur adipisicing elit. Animi velit modi magnam atque iste delectus assumenda inventore nam iusto quo. Facilis, expedita laudantium at itaque soluta aliquid hic obcaecati reprehenderit."
        ]
    },
    {
    "type" :"Team",
    "extra":[
            "Our Amazing Team",
            "Lorem ipsum dolor sit amet consectetur.",
            "Kay Garland",
            "Lead Designer",
            "Larry Parker",
            "Lead Marketer",
            "Diana Pertersen",
            "Lead Developer",
            "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aut eaque, laboriosam veritatis, quos non quis ad perspiciatis, totam corporis ea, alias ut unde."
        ]
    },
    {
    "type": "Contact",
    "extra":[
            "Contact Us",
            "Lorem ipsum dolor sit amet consectetur."
        ]
    }
]

现在,我想将这些额外的细节作为对象。 (这样,当用户编辑此信息时,我不必更改整个文档)

就像标题一样,我希望额外的模型成为:

extra: {
  header : {type : String},
  Subheader : {type : String}
}

,对于服务,我希望该模型为:

extra: {
  header : {type : String },
  Subheader : {type :  String},
  servicesName1:{type :  String},
  serviceDetails1:{type :  String},
  servicesName2: {type :  String},
  serviceDetails2:{type :  String},
  servicesName3: {type : String},
  serviceDetails3:{type :  String}
}

我对如何在代码中引用此变量模型感到困惑。或者,如果还有其他任何人可以想到的选择。

这是我使用过的架构,我将如何对其进行更改以使其能够解决此问题?

const ItemSchema = new Schema({
    data: [{
    type : {
        type: String,
        required: true
    },
    extra : [{
      type: String,
    }]
  }],
});

0 个答案:

没有答案