Пн goose глубоко заполнить виртуальное поле - PullRequest
0 голосов
/ 24 марта 2020

У меня есть структура схемы «3 глубины», и я обнаружил, что не могу отобразить информацию, которая находится на третьем уровне. Я не уверен, если это потому, что это виртуальное поле, или я делаю что-то не так.

Коллекции являются программой> проект> вывод. Схема программы ищет проекты следующим образом ...

const programmeSchema = new mongoose.Schema({
name: {
    type: String,
},
projects:
    [{ type: mongoose.Schema.ObjectId, ref: 'Project' }],
...
})

Что возвращает проект. В моей схеме проекта (средний уровень) есть виртуальное поле для коллекции выходных данных (третий уровень), например ...

projectSchema.virtual('outputs', {
ref: 'Output',
foreignField: 'project',
localField: '_id'
})

, которое отлично работает, когда я нахожу и отображаю один проект. Однако, когда я пытаюсь отобразить документы из выходной коллекции на уровне программы (верхний уровень), я не могу этого сделать. Я пробовал разные варианты, например .....

await Programme.findOne({ _id: req.params.id }).populate({
    path: 'projects',
    populate: {
        path: 'outputs'
    }
})

, но я в тупике. Я гуглил вокруг, но кроме одной статьи, которой я изо всех сил пытался следовать, я не могу найти ничего об этом (глубокое заполнение виртуального поля).

Пожалуйста, кто-нибудь может сказать мне, где я иду не так?

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