首页 > 解决方案 > 查询 Firebase (NoSQL) 数据的子集

问题描述

我有一个包含 5,000 个“玩家”的 Firebase (NoSQL) 集合。每天我都想查询这些玩家的一个子集以执行一些操作。我的问题是,最好的方法是什么?

据我所知,没有办法直接在 Firebase 中执行这样的查询。例如,我不能说“收集 5,000 名玩家,给我所有与这些标识符中的任何一个匹配的玩家”。如果这一个选项,请告知。

我想到的一个选择是每天创建一个集合,其中包含我有兴趣对其执行操作的玩家的标识符。这会是 Firebase 中的首选方法吗?IE,我会创建一个类似的集合20190105Game,它将包含标识符子集。我会先查询那个集合,然后去Players集合获取collection.where("identifier", "==", "other_identifier")

有没有更好的办法?

标签: firebasenosqlgoogle-cloud-firestore

解决方案


如果你想过滤一部分玩家,你有两个选择:

  1. 将子集的条件包含到您的查询中。例如playersRef.where("subset", "=", 2).where("othercondition", "=", "value").orderBy("somefield").limit(2)

  2. 为玩家子集创建一个(子)集合。

两者都不比另一个更好,这完全取决于您的确切用例。我通常会选择第一个选项,除非我有一个由于我的其他查询或吞吐量要求而无法使用的用例。


推荐阅读