【问题标题】:ternary operation in order by Firebase FirestoreFirebase Firestore 按顺序进行三元运算
【发布时间】:2021-09-05 12:22:16
【问题描述】:

我在 Firebase 中有一个包含以下字段的文档的集合

Id,Description,amount,price

随着时间的推移,这个集合包含许多存储的文档。

但是现在又增加了一个新的列,这样就可以按这个列排序了。

Id,Description,amount,price,Total

使用 order by 进行查询时,它会正确显示信息,但仅显示新文档的信息。

不显示没有Total 列的以前的文档。

this.db.collection('OrderDet', ref => ref.where("Id", "==", uid).orderby("Total","asc"));

如何让查询显示所有文档,包括那些没有Total 列的文档

提前谢谢你!

【问题讨论】:

    标签: angular firebase google-cloud-firestore conditional-operator


    【解决方案1】:

    为清楚起见,您看到的是预期行为。

    来自 Firestore 文档 Ordering - 其中指出

    orderBy() 子句还过滤给定字段的存在。 结果集将不包括不包含 给定的字段。

    因此解决方案是删除 orderBy 子句保留 orderBy 子句,并确保所有文档都包含具有零 (0) 余额(值)的 Total 字段。

    您只需编写一小段代码即可将该字段添加到旧文档中。

    此外,您可以在没有orderBy 的情况下加载您想要的数据并在代码中排序。

    【讨论】:

    • 感谢您的评论,我无法删除 Order by 子句,因为这是客户要求。
    • 那么,我会尝试按照您的建议制作一个更新旧文档的代码
    猜你喜欢
    • 2019-08-30
    • 2010-11-29
    • 1970-01-01
    • 2015-09-29
    • 2023-03-05
    • 2020-05-22
    • 1970-01-01
    • 2020-07-22
    • 2014-11-03
    相关资源
    最近更新 更多