我正在尝试为报告系统创建一个动态菜单项,我有大约5个主要报告组,每个组可能有另一个组,所以最终我们有了该组报告,
Something like this:
Finance Reports ---> Daily Reports ----> Payments Report
|> Monthly Reports |> Customers Reports
我想做的是在JSON响应上返回一个复杂的层次结构来构建菜单,该场景将是: 用户登录--->获取用户组--->获取每个组组--->获取组报告。
请帮助您获得上述情况所需的结构。
我拥有的模式:
//ReportsGroups:
const reportsGroupSchema = new mongoose.Schema({
groupLabel: {
type: String,
required: true,
unique: true
},
groupName: {
type: String,
required: true,
unique: true
},
groupId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'ReportsGroup'
},
groupHierarchy: {
type: Number,
required: true
}
},
{
timestamps: true
});
// Reports:
const reportSchema = new mongoose.Schema({
reportLabel: {
type: String,
required: true,
unique: true
},
reportName: {
type: String,
required: true,
unique: true
},
groupId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'ReportsGroups',
required: true
},
storedProcedure: {
type: String,
required: true
}
},
{
timestamps: true
});
//Users Reports:
const userReportSchema = new mongoose.Schema({
groupId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'ReportsGroups',
required: true
},
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Users',
required: true
}
},
{
timestamps: true
});