Mongoose - 查询以获取文档的所有子文档

时间:2016-10-18 16:03:56

标签: node.js mongoose subdocument

我对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);
        });

但我没有运气......我不确定如何正确使用聚合。

1 个答案:

答案 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);
        });