Я создаю 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
, затем, если это папка, заполнить ее папками и фидами, затем, если внутри есть другая папка, сделать то же самое и так далее, пока не останется внутренних папок.
Я пытался сделать это по-разному, но не получилось.