Как правильно заполнить данные из мангуста? - PullRequest
0 голосов
/ 26 сентября 2019

Я создаю RSS Reader и имею следующие модели:

const folderSchema = new Schema({
    title: {
        type: String, 
        required: true 
    },
    parentFolder: { type: Schema.Types.ObjectId, ref: 'Folder' },
    folders: [{ type: Schema.Types.ObjectId, ref: 'Folder' }],
    feeds: [{ type: Schema.Types.ObjectId, ref: 'RSSFeed' }]
})

const rssFeedSchema = new Schema({
        feedUrl: { 
            type: String, 
            required: true 
        },
        title: {
            type: String,
            required: true
        },
        link: {
            type: String,
            required: true
        },
        description: {
            type: String,
            required: false
        },
        parentFolder: { type: Schema.Types.ObjectId, ref: 'Folder' },
        items: [{ type: Schema.Types.ObjectId, ref: 'FeedItem' }]
    })

Папки могут иметь бесконечную древовидную структуру.Например, YouTube - Tech - Code - JavaScript Внутри папок есть RSS-каналы.Некоторые папки и каналы могут не иметь parentFolder, то есть они находятся в корне.

Что мне нужно сделать, чтобы рекурсивно заполнить корневые папки и отправить данные во внешний интерфейс.Итак, мне нужно искать папки и фиды с помощью parentFolder: null, затем, если это папка, заполнить ее папками и фидами, затем, если внутри есть другая папка, сделать то же самое и так далее, пока не останется внутренних папок.

Я пытался сделать это по-разному, но не получилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...