【问题标题】:Swift/FireStore - Best way to querying by dateSwift/FireStore - 按日期查询的最佳方式
【发布时间】:2021-05-31 23:16:46
【问题描述】:

好的,所以这并不像您想象的那样技术性。我想知道,如果我要向 FireStore 添加一条记录,哪种格式是最好的方法,这将允许我通过日期和月份以及月份查询数据?我会有两个不同的节点吗?即formattedMonthStringformattedDateString

所以本质上我的数据库看起来像

formattedMonthString: "May"
formattedDateString: "21 May 2021"

或者我最好使用Date()。这不是时间戳,而是我会选择日期并将其上传到 FireStore。

当然,我可以执行诸如 .whereField("formattedMonthString", isEqualTo: "May") 之类的查询,但是,我怀疑我是否可以对 formattedDateString 执行范围过滤,即 2021 年 5 月 21 日、2021 年 5 月 22 日等人。

我希望我解释得足够好,如果它不像其他问题那样技术性,请道歉。

【问题讨论】:

  • 按月份查询很简单,只需将一个字段专用于月份并对其进行字符串等于查询。但是,无论年份如何,这都会返回特定月份的每个文档。不过,我假设您已经考虑到了这一点。 “按日期查询”是模棱两可的。您想如何准确地按日期查询?

标签: swift google-cloud-firestore


【解决方案1】:

您可以使用等于直接等效字符串的值进行查询,但您不能按顺序进行排序,因为月份不是按字母数字顺序排列的。您应该尊重地找到适合您需要的月份或日期的基本查询

let query = FirestoreRef.whereField("formattedMonthString", isEqualTo: "May")
let query = FirestoreRef.whereField("formattedDateString", isEqualTo: "21 May 2021")

您可以在此处阅读有关简单查询的更多信息

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    相关资源
    最近更新 更多