如何获取特定的用户数组(mongodb,nodejs)

时间:2018-11-01 10:54:16

标签: node.js mongodb

  

我的后端

任何人都可以告诉我我的mongodb中有多少用户。例如,我的数据库中有3个用户,其中2个用户有评论,而其余一个用户没有评论。谁拥有评论,我只需要让该用户进入前端。我的mongodb结构是:

_id:ObjectId(“ 123”) 用户名:“ xx” 电子邮件:“ xx” 评论:数组 0:对象

虽然我正在使用以下代码,但我正在使所有用户都进入前端。但是我只需要具有评论的人,而只有该用户才需要进入前端。

//Getting reviews in Users to homepage
  userRouter.post('/getreviews', (req, res) => {
    Collections.user.find({}, {"reviews":1,"username":1},  function (err, result) {
    if (result) {
      //    console.log(result);
  res.status(200).json({users:result.map((user) => user.reviews)});
    } else {
   res.status(500).send("User Not Found with Details: " + JSON.stringify(user));
    }
    })
    });

1 个答案:

答案 0 :(得分:2)

您需要在第一个{}中添加条件,以检查评论是否存在 {“评论”:{$ exists:true}}

//在用户的主页上获得评论

 userRouter.post('/getreviews', (req, res) => {
    Collections.user.find({"reviews": {$exists: true}}, {"reviews":1,"username":1},  function (err, result) {
    if (result) {
      //    console.log(result);
  res.status(200).json({users:result.map((user) => user.reviews)});
    } else {
   res.status(500).send("User Not Found with Details: " + JSON.stringify(user));
    }
    })
    });