nodejs /表示模式上的mongoose .populate(),其自身为refs

时间:2018-05-09 04:26:38

标签: node.js express mongoose

我有一个用户的这个架构:

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'
        }
    }]
}

然后,当我尝试向页面显示所有recievedRequests时,我使用此代码:

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是当前登录用户的ID。但是,每当我引用curUser.recievedRequests.user时,在网页中它只返回用户的id而不是实际的用户对象。我假设它与嵌套模式引用有关,因为我看不到任何会导致此问题的其他内容。有谁知道解决这个问题的方法?

感谢。

0 个答案:

没有答案