我有一个用户的这个架构:
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而不是实际的用户对象。我假设它与嵌套模式引用有关,因为我看不到任何会导致此问题的其他内容。有谁知道解决这个问题的方法?
感谢。