您如何在Cloud Firestore中进行分组最大?

时间:2019-06-18 00:03:38

标签: google-cloud-firestore

我正在学习将Cloud Firestore与Flutter结合使用。

说我有一个名为Updates的集合:

{
  uid: 1234,
  update: "At work",
  date: <timestamp>
}

我想获取每个用户的最新更新。如果我有用户列表,则可以:

db.collection("updates")
  .where("uid", "==", $uid)
  .orderby(date desc)
  .limit(1)
  .get();

每个。但是,如何从更新集合中获取用户列表?我是否需要存储一个我确保唯一的用户集合,并将其与更新集合保持同步?

如果我正在这样做,是否有一个好的方法可以一步一步进行检索,还是我必须让所有用户然后遍历他们并检索其最近的文档ID并请求该文档? / p>

我来自mysql背景,我认为我做错了:|

1 个答案:

答案 0 :(得分:1)

Cloud Firestore不提供任何聚合查询,例如sum,avg等。正如您已经确定的那样,您将不得不将这些额外的数据存储在另一个集合中。云功能通常用于自动保持对文档的更改与其他文档同步。

Cloud Firestore还不支持跨多个具有不同名称的集合的查询,也不支持集合之间的任何联接。如果您需要多个集合中的数据,则必须对它们进行多个查询,然后将结果合并到客户端中。

对于NoSQL类型数据库,这都是非常典型的。