У меня есть база данных веб-сайта, где я храню все содержимое в массиве (это содержимое доступно для редактирования для привилегированных пользователей). Массив имеет одно поле с именем type, которое является типом компонента, и также имеет массив, содержащий все дополнительная информация.
Это 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 была:
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,
}]
}],
});