firebase - 查询 Firebase (NoSQL) 数据的子集
问题描述
我有一个包含 5,000 个“玩家”的 Firebase (NoSQL) 集合。每天我都想查询这些玩家的一个子集以执行一些操作。我的问题是,最好的方法是什么?
据我所知,没有办法直接在 Firebase 中执行这样的查询。例如,我不能说“收集 5,000 名玩家,给我所有与这些标识符中的任何一个匹配的玩家”。如果这是一个选项,请告知。
我想到的一个选择是每天创建一个新集合,其中包含我有兴趣对其执行操作的玩家的标识符。这会是 Firebase 中的首选方法吗?IE,我会创建一个类似的集合20190105Game
,它将包含标识符子集。我会先查询那个集合,然后去Players
集合获取collection.where("identifier", "==", "other_identifier")
有没有更好的办法?
解决方案
如果你想过滤一部分玩家,你有两个选择:
将子集的条件包含到您的查询中。例如
playersRef.where("subset", "=", 2).where("othercondition", "=", "value").orderBy("somefield").limit(2)
为玩家子集创建一个(子)集合。
两者都不比另一个更好,这完全取决于您的确切用例。我通常会选择第一个选项,除非我有一个由于我的其他查询或吞吐量要求而无法使用的用例。
推荐阅读
- excel - 编辑 Excel Mod 公式
- android - RecyclerView 项目未填充(AndroidStudio、Room、MVVM)
- javascript - 为什么这段代码会返回一个未定义值的数组以及其他值?
- jquery - 如何在 ionic 3 中更改时获取 url 参数?
- javascript - 单击按钮后在页面之间传输数据
- php - 使用数字键对多维数组进行排序,但保持键相同,只需更改顺序
- elasticsearch - 如何在 Kibana 中显示来自 Elasticsearch 的最新值的唯一计数
- flutter - 扑。如何测试集成测试没有溢出?
- html - 使用 htmltools 在传单地图中创建标签会产生微小的标签
- javascript - 在 Bootstrap 选项卡更改上暂停视频并停止上一个视频选项卡