user5863509
user5863509

Reputation: 265

Firestore Query - Joining two collections

I am new to firestore. I want to get the name from a different collection by using join query by ID. How can I do that in firestore?

Here is some sample collection.

I have two collection.Employee and department.

Department collection:
 1001 --> DeptId : 1001
          DeptName : Account
 1002 -->  DeptId : 1002
           DeptName : HR

Employee collection

2001 --> empId : 2001
         DeptId :1001
         empName : Jon
2002 -->  empId : 2002
         DeptId : 1002
         empName : Steve

I want to query employee collection and wants to add dept document as part of the response. Here is sample response I am trying to get.

{
  "empid": 2001,
  "empname" : Jon
  "Dept" :{
    "Id" :1001,
    "DeptName" : HR
  } 
}

Here is my sample code to get employee data.

function getEmployee(req, res)
{
 var empId = req.query.empId;
var obj = admin.firestore().collection('employee').doc(empId);
  obj.get()
 .then(function(emp) {
   if (emp.exists) {       
       return res.status(200).send(JSON.stringify(emp.data()));
   } else {              
       return res.status(200).send('not found');
   }
})
.catch(function(error) {
   res.status(500).send('Error getting data.' })
});
}

How to add dept object to this employee?

Upvotes: 8

Views: 8132

Answers (1)

Doug Stevenson
Doug Stevenson

Reputation: 317352

Firestore has no join queries. If you want to combine the data from two documents, you will have to query them individually, then compose your response based on the data from both.

Upvotes: 4

Related Questions