nodejs / express mongoose .populate () в схеме с ссылками на себя - PullRequest
0 голосов
/ 09 мая 2018

У меня есть эта схема для пользователя:

const UserSchema = new Schema({

    ...

    friends: [{
        user: {
            type: Schema.Types.ObjectId,
            ref: 'users'
        }
    }],
    sentRequests: [{
        user: {
            type: Schema.Types.ObjectId,
            ref: 'users'
        }
    }],
    recievedRequests: [{
        user: {
            type: Schema.Types.ObjectId,
            ref: 'users'
        }
    }]
}

Затем при попытке показать все полученные запросы на странице я использую этот код:

router.get('/friendRequests', (req, res) => {
    User.findOne({
            _id: req.user.id
    })
    .populate('recievedRequests.user')
    .then(curUser => {
        res.render('friends/friendRequests', {
            curUser: curUser
        });
    })
});

, где User - модель, а req.user.id - идентификатор текущего пользователя, вошедшего в систему. Однако на веб-странице, когда я ссылаюсь на curUser.recievedRequests.user, он просто возвращает идентификатор пользователя, а не фактический объект пользователя. Я предполагаю, что это связано со ссылкой на вложенную схему, поскольку я не вижу ничего другого, что могло бы вызвать эту проблему. Кто-нибудь знает способ решить эту проблему?

Спасибо.

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