查询Firebase(NoSQL)数据的子集

时间:2019-05-02 12:00:38

标签: firebase nosql google-cloud-firestore

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

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

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

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

如果要过滤一部分玩家,则有两种选择:

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

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

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