我正在构建RSS阅读器,并具有以下模型:
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-技术-代码-JavaScript 文件夹内有RSS Feed。某些文件夹和Feed可能没有parentFolder,这意味着它们位于根目录中。
我需要做的以递归方式填充根文件夹并将数据发送到前端。
因此,我需要使用parentFolder: null
搜索文件夹和提要,然后,如果它是一个文件夹,请使用文件夹和提要来填充它,然后在其中有另一个文件夹-进行相同的操作,依此类推,直到没有内部文件夹为止左。
我尝试用不同的方式来做,但是失败了。