нужен совет, зациклился на сборе меню с ролями на mongodb. ну, мне нужно показать левое меню с вложенным меню, в котором каждое меню имеет роли. И я хочу фильтровать на основе ролей, на самом деле я все еще путаю моделирование данных, будь то встроенный или ссылочный стиль. Итак, вот мои обе модели.
- Встроенный
[{
"label": "Landing",
"roles": ["sa", "reguler", "hc"]
},
{
"label": "Profile",
"roles": ["reguler"]
},
{
"label": "Leave",
"roles": ["hc","reguler"],
"children": [{
"label": "Create Leave",
"roles": ["reguler"]
},
{
"label": "Maintain Leave",
"roles": ["reguler"]
},
{
"label": "Master Leave",
"roles": ["hc"]
}
]
},
{
"label": "Absence",
"roles": ["reguler"],
"children": [{
"label": "Clock In",
"roles": ["reguler"]
},
{
"label": "Clock Out",
"roles": ["reguler"]
}
]
},
{
"label": "Logout",
"roles": ["sa", "reguler", "hc"]
}
]
ссылка
[{
"mIndex": 1,
"parentIndex": null,
"label": "Landing",
"roles": ["sa", "reguler", "hc"]
},
{
"mIndex": 2,
"parentIndex": null,
"label": "Profile",
"roles": ["reguler"]
},
{
"mIndex": 3,
"parentIndex": null,
"label": "Leave",
"roles": ["reguler"]
},
{
"mIndex": 4,
"parentIndex": null,
"label": "Absence",
"roles": ["reguler"]
},
{
"mIndex": 5,
"parentIndex": null,
"label": "Logout",
"roles": ["sa", "reguler", "hc"]
},
{
"mIndex": 6,
"parentIndex": 3,
"label": "Create Leave",
"roles": ["reguler"]
},
{
"mIndex": 7,
"parentIndex": 3,
"label": "Maintain Leave",
"roles": ["reguler"]
},
{
"mIndex": 8,
"parentIndex": 4,
"label": "Clock In",
"roles": ["reguler"]
},
{
"mIndex": 9,
"parentIndex": 4,
"label": "Clock Out",
"roles": ["reguler"]
},
{
"mIndex": 10,
"parentIndex": 3,
"label": "Master Leave",
"roles": ["hc"]
},
]
И мой ожидаемый результат во встроенном стиле, и я могу фильтровать все меню по ролям. поэтому, когда я хочу меню "регулятора", результат будет:
[{
"label": "Landing",
"roles": ["reguler"]
},
{
"label": "Profile",
"roles": ["reguler"]
},
{
"label": "Leave",
"roles": ["reguler"],
"children": [{
"label": "Create Leave",
"roles": ["reguler"]
},
{
"label": "Maintain Leave",
"roles": ["reguler"]
}
]
},
{
"label": "Absence",
"roles": ["reguler"],
"children": [{
"label": "Clock In",
"roles": ["reguler"]
},
{
"label": "Clock Out",
"roles": ["reguler"]
}
]
},
{
"label": "Logout",
"roles": ["reguler"]
}
]
, который не может быть «Master Leave» (относится к ролям h c). Я пытался использовать раскручивание (встроенное) с ролями, но я думаю, что это невозможно, потому что вложенные дочерние элементы не будут иметь ограничений. Я имею в виду, что позже "Create Leave" можно будет иметь детей. В противном случае в ссылочном стиле его сложно группировать по родительскому элементу, это будет неограниченная группа. Пожалуйста, помогите мне ..