【问题标题】:Workaround to query on field with filter on a different field [Firestore]在不同字段上使用过滤器查询字段的解决方法 [Firestore]
【发布时间】:2020-11-27 21:48:54
【问题描述】:

根据official documentation,如果您包含具有范围比较(、>=)的过滤器,则您的第一个排序必须在同一字段上。

因此,以下查询无效,因为我们按“人口”过滤并按“国家”排序

citiesRef.where("population", ">", 100000).orderBy("country")

除了下载整个过滤后的集合并在本地对其进行排序之外,是否有解决此问题的解决方法

我什至愿意使用任何 3rd 方软件来实现此查询,而无需下载整个过滤后的集合。

如果有人能指出我讨论此问题并提供更多信息的地方,我将不胜感激。

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    除了下载整个过滤后的集合并在本地对其进行排序之外,是否有解决此问题的方法。

    不,没有。这是数据库的硬限制。您在文档中看到的是事实。您可能想read this answer 了解更多信息。引用:

    这是 Firestore 查询模型的固有特性,因此了解更多信息可能会有所帮助。它的性能保证意味着,一旦找到查询的起点,它必须始终能够从数据库中流式传输结果。对未知数量的结果重新排序将无法始终满足该性能保证,因此不支持此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2021-10-21
      • 1970-01-01
      • 2013-03-22
      • 2013-03-08
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多