我可以使用 where equals 子句和 orderby 查询 Cloud Firestore 集合吗?

Posted

技术标签:

【中文标题】我可以使用 where equals 子句和 orderby 查询 Cloud Firestore 集合吗?【英文标题】:Can I query a Cloud Firestore collection with a where equals clause and an orderby? 【发布时间】:2018-03-31 00:16:09 【问题描述】:

documentation 声明:

但是,如果您有一个具有范围比较(、>=)的过滤器,则您的第一个排序必须在同一字段上:

这意味着我可以将非范围比较“==”与 orderBy 子句一起使用。但这失败了:

myCollectionRef.where('age', '==', 2).orderBy('name');

【问题讨论】:

【参考方案1】:

如果您想使用一个或多个相等过滤器对查询进行排序,其中排序是按不同的字段,您需要创建一个复合索引。

您可以在我们的 "Managing Indexes" 文档部分了解更多信息。

【讨论】:

谢谢。这个功能是未来发展的候选吗?有相等过滤器的能力,加上在不同字段上的排序,没有复合索引?还是不太可能……?我注意到可以使用多个相等过滤器而不需要自定义索引。 很遗憾没有。我们可以对相等过滤器使用不同的技术 对于这些类型的查询,我们可以采用哪些不同的技术?你能帮我解决这个问题吗? ***.com/questions/46874499/…

以上是关于我可以使用 where equals 子句和 orderby 查询 Cloud Firestore 集合吗?的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter:如何使用 WHERE 子句和 OR 子句

Laravel 雄辩的 SQL 查询与 OR 和 AND 与 where 子句

SQL -------- WHERE子句与AND,OR和NOT运算符结合使用。

如何将 ObjectQuery 与由 OR 子句分隔的 Where 过滤器一起使用

SQL:如何在带有“NOT IN”条件的“Where”子句中使用“and”和“or”

WHERE 子句中的 OR 会降低 sql 查询性能(sql server)