Firestore 查询 - 加入两个集合

use*_*509 7 javascript node.js google-cloud-firestore

我是firestore的新手。我想通过按 ID 使用连接查询从不同的集合中获取名称。我怎么能在firestore中做到这一点?

这是一些样本集。

我有两个集合。员工和部门。

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
Run Code Online (Sandbox Code Playgroud)

我想查询员工集合并希望添加部门文档作为响应的一部分。这是我试图获得的示例响应。

{
  "empid": 2001,
  "empname" : Jon
  "Dept" :{
    "Id" :1001,
    "DeptName" : HR
  } 
}
Run Code Online (Sandbox Code Playgroud)

这是我获取员工数据的示例代码。

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.' })
});
}
Run Code Online (Sandbox Code Playgroud)

如何将部门对象添加到该员工?

Dou*_*son 4

Firestore 没有联接查询。如果您想合并两个文档中的数据,则必须单独查询它们,然后根据两个文档中的数据撰写响应。

  • 如何?请详细说明。 (6认同)