如何正确填充猫鼬的数据?

时间:2019-09-26 09:20:20

标签: node.js mongodb mongoose mongoose-schema mongoose-populate

我正在构建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搜索文件夹和提要,然后,如果它是一个文件夹,请使用文件夹和提要来填充它,然后在其中有另一个文件夹-进行相同的操作,依此类推,直到没有内部文件夹为止左。

我尝试用不同的方式来做,但是失败了。

0 个答案:

没有答案