我对mongoose很新,我有一个公司列表,每个公司都有一个用户子阵。我只想用mongoose检索特定公司的所有用户:
单个公司就像
{
"_id": "57ffa47f5b70f90831212348",
"name": "mycompany",
"address": "...",
"phone": "...",
"users": [
{
"_id": "57ffa47f5b70f90831212347",
"username": "alpha",
"name": "myname",
"surname": "mysurname",
"password": "..."
}
]
}
我试过
Company.findOne({
'name': req.user.name
})
.aggregate({$unwind: '$users'})
.exec(
function(err, users) {
if (err) res.status(500).send(err);
res.json(users);
});
但我没有运气......我不确定如何正确使用聚合。
答案 0 :(得分:2)
只需填充company.users
Company.findOne({
'name': req.user.name
})
.populate('users', 'username name surname')
.exec(
function(err, company) {
if (err) res.status(500).send(err);
res.json(company.users);
});