пн goose заселение от многих ко многим - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь создать динамические c пункты меню для системы отчетов, у меня есть около 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
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...