首页 > 解决方案 > 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。

请注意,有数百万个“对象”文档。因此,操作在性能方面、成本方面、数据传输率方面(移动应用程序的电池寿命)应该尽可能高效。

非常感谢!

标签: google-cloud-firestore

解决方案


火力基地在这里

Cloud Firestore 目前不支持这种类型的查询(通常称为 IN 查询),因为我们还没有弄清楚如何在保持性能保证的同时做到这一点。

目前,您必须对每个值进行单独的查询,然后在客户端合并这些值。

另见:


推荐阅读