prudhvi raj
prudhvi raj

Reputation: 23

How to get particular array of user (mongodb, nodejs)

my backend

Can any one please tell me i have number of users in my mongodb. For example I have 3 users in my database, on that 2 users have reviews and the rest of the one user have no reviews. who have reviews i need to get only that users to frontend. My mongodb structure is:

_id:ObjectId("123") username:"xx" email:"xx" reviews:Array 0:Object

While i am using this below code i am getting all users to frontend.but i need only who have reviews, only that user i need to get to frontend.

//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));
    }
    })
    });

Upvotes: 0

Views: 262

Answers (1)

Yash Fatnani
Yash Fatnani

Reputation: 91

You need to add condition in first {} to check whether reviews exists or not {"reviews": {$exists: true}}

//Getting reviews in Users to homepage

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

Upvotes: 2

Related Questions