google-cloud-firestore - Google Cloud Firestore - 如何对数组项进行 OR 查询
问题描述
我试图找到一种在“对象”文档集合中进行 OR 查询的方法。
每个对象文档都有一个“类型”字段,它是一个数组。
object1:
- name:
- description:
- types:["type-a","type-b","type-d"]
- createdOn
object2:
- name:
- description:
- types:["type-a","type-d"]
- createdOn
object3:
- name:
- description:
- types:["type-d","type-h"]
- createdOn
object4:
- name:
- description:
- types:["type-b"]
- createdOn
如何进行查询以获取属于 type-a 或 type-b 的对象文档?例如,对于上述集合的情况,如果可能,结果应该是按 createdOn 字段排序的 object1、object2、object4。
请注意,有数百万个“对象”文档。因此,操作在性能方面、成本方面、数据传输率方面(移动应用程序的电池寿命)应该尽可能高效。
非常感谢!
解决方案
火力基地在这里
Cloud Firestore 目前不支持这种类型的查询(通常称为 IN 查询),因为我们还没有弄清楚如何在保持性能保证的同时做到这一点。
目前,您必须对每个值进行单独的查询,然后在客户端合并这些值。
另见:
- 如何在 Cloud Firestore 中使用逻辑 OR 执行复合查询?,这是关于更一般的
OR
查询。
推荐阅读
- python - 获取满足条件的最后一个可用值
- python - UTC 中的 Python os.path.getmtime 为什么
- reactjs - Play 中的 CORS 过滤器不明确
- apache-spark - Spark 应用程序以状态 143 退出
- php - 为什么我只从视图中获取第一行值到 Laravel 中的控制器?
- google-cloud-platform - 我们可以使用谷歌云功能将文件从一个项目复制到另一个项目吗
- c++ - free():在 tcache 2 中检测到双重空闲,组合
- sql - SQL 子查询未分组
- google-apps-script - IMPORTRANGE 应用程序脚本
- java - TMC bean:缺少 JDK,需要运行某些 NetBeans 模块