【问题标题】:Firebase Firestore order by most items in array using array-contains-anyFirebase Firestore 使用 array-contains-any 按数组中的大多数项目排序
【发布时间】:2021-11-01 08:55:18
【问题描述】:

有没有办法使用array-contains-any 并按数组中包含的项目对查询进行排序?我知道一旦检索到数组就可以完成,但我打算使用分页,这样我就可以按页检索数千个文档。

【问题讨论】:

  • 我很难想象排序应该是什么样子。您能否编辑您的问题以包含一些示例文档,以及结果应该是什么样子。我怀疑在array-contains-any 子句中是否有可能,但是一旦我们看到更多细节,我们或许能够想出一个解决方法。
  • 我想我在重新阅读标题后明白了你的意思。我在下面写了一个答案。如果这不是您的意思,我仍然建议使用我在上面要求的信息更新问题。

标签: firebase google-cloud-platform google-cloud-firestore


【解决方案1】:

Firestore 只能过滤文档中存在的值。它无法执行计算来获取要过滤的值,因为该值需要存在于索引中。

如果您想过滤数组字段中存在的项目数,您可以添加一个额外的字段来保持该计数,然后在您更新数组本身时更新该字段。一旦有了这个附加字段,您就可以轻松地在查询条件中使用它。

如果您想对数组中与查询匹配的值的数量进行排序,这在查询中是不可能的。查询返回结果后,您必须在应用程序中执行该排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2020-11-29
    • 2019-05-12
    • 1970-01-01
    相关资源
    最近更新 更多