【问题标题】:Firestore Query - Joining two collectionsFirestore 查询 - 加入两个集合
【发布时间】:2018-12-09 04:13:04
【问题描述】:

我是 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

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

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

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

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

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

【问题讨论】:

    标签: javascript node.js google-cloud-firestore


    【解决方案1】:

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

    【讨论】:

    • 怎么样?请详细说明。
    • @franc 没有一种解决方案可以满足所有需求。您需要描述您的收藏和文档,以及您打算从中获得的结果。解决方案与您的需求高度相关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    相关资源
    最近更新 更多