firebase - Google Cloud Firestore 'in' Operator 解决方法
问题描述
我正在使用 google cloud firestore 作为颤振应用程序的数据库。我的代码要求我向数据库发出包含 '.where("X", "in", "very-long-list")' 的请求。出现的问题是“in”运算符最多只能组合 10 个相等子句,而我的列表的长度可变,最终可能远大于 10。我正在寻找可能的解决方法。
一个示例语句:
citiesRef.where("state", "in", "[list-of-1000]");
编辑:为了提供更多背景信息,我的项目是一个用户有朋友的社交媒体应用程序。数据库将被重组,以便用户文档具有子集合“朋友”,其中包含包含他们的用户 ID 的文档。用户文档还有一个称为帖子的集合,其中引用了按时间顺序排列的帖子集合。在帖子集合中,每个帖子文档都有一个包含其 UID 的文档。要创建用户的提要,将使用 '.where["UID", "in", ["List-of_friend-UIDs"])' 引用和过滤帖子集合。如果您知道更好的结构,我非常愿意重组我的数据库。
解决方案
如果您必须在“in”查询中使用超过 10 个项目,则需要将其分解为 10 个较小的列表,对每批 10 个执行 1 个查询,然后合并结果。
推荐阅读
- jquery - 使用 JQUERY MODAL PHP 传递变量
- ubuntu-16.04 - 更新驱动程序 nvidia-396 后的 ubuntu 16.04 LTS 登录循环
- bash - unoconv 中的错误处理
- c++ - 使用像 typedef 这样的 decltype
- apache-spark - Spark Streaming 将查询参数传递给 Neo4j Scala
- angular - 如何绘制基于 svg 的 2D 平面图?
- c# - C# SQLite,获取真实类型?
- apache-spark - 在 Pyspark 中将流水线 RDD 转换为 Dataframe
- python - 替换字符串中提供的索引处的字符
- vue.js - 计算数组在模板中不可用