0

I am trying to join two mongoose collection and fetch all related details using the query which i have mention below. Problem is I am getting only one table details employee collection not able get two collection detail when I call GetEmployeeDetails(emp_id) . Need a suggestion. How to get two collection data in one query.

const EmployeeInfoSchema = mongoose.Schema({
  employee_id: String,
  client_id: {
    type: Schema.Types.Number,
    ref: "client",
  },
  email: String,
  contact: String,
});

const ClientInfoSchema = mongoose.Schema({
  client_id: Number,
  employee_id: {
    type: Schema.Types.String,
    ref: "employee",
  },
  project: String,
  organization: String,
});

let employeeInfo = mongoose.model("employee", EmployeeInfoSchema);
let clientInfo = mongoose.model("client", ClientInfoSchema);

module.exports = { employeeInfo, clientInfo };

Query

async function GetEmployeeDetails(emp_id) {
  let employee_info = await Storage.employeeInfo
    .find()
    .where({ employee_id: emp_id })
    .populate({
      path: "client",
    })
    .exec(function (err, block) {
      if (err) {
        console.log("%s", err);
      }
      console.log("Employee details is %s", employee_info);
    });

  return employee_info;
}

1 Answer 1

1

Try to change your GetEmployeeDetails method like this:

async function GetEmployeeDetails(emp_id) {
  try {
    let employee_info = await Storage.employeeInfo
      .find({ employee_id: emp_id })
      .populate('client')
      .exec(function (err, block) {
        if (err) console.log('%s', err);
        else console.log('Employee details is %s', employee_info);
      });

    return employee_info;
  } catch (err) {
    res.status(400).send('Error getting details');
  }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.