火堆是否支持 where 子句中的 BETWEEN 条件



使用firestore,我有一系列产品可供预订,正好可以预订3天。所以我将bookingStartsOn和bookingEndsOn保留为产品集合(Unix格式(中的一个属性。

现在,我想筛选适用于特定日期范围的产品,例如(21-09-2019 至 23-09-2019(。

您能否在这方面帮助我,因为我无法在 WHERE 子句中找到 BETWEEN 条件。

如果你使用where 子句,你将达到每个查询只能使用一个比较运算符(>=><<=(的限制,所以你基本上只能找到所有大于日期的值(如果你只是在寻找过去 7 天的日期并且将来没有存储任何内容,那就太好了(, 但不会让您像示例21-09-2019 to 23-09-2019那样执行操作。

为此,还有其他参数在这里比 where 子句效果更好。在 Firestore 中,您可以使用startAt(), endAt(),来包含您提供的内容,或者startAfter(), endBefore()

为了使 startAt 类型运算符在这里有效,您需要将它们与orderBy结合使用。从本质上讲,您将指示 Firestore 做的是首先按时间顺序考虑所有项目,然后只返回符合您的开始和结束时间的长序列列表中的日期。

这些应该可以解决问题,您可以在此处阅读有关它们及其要求的信息:

https://firebase.google.com/docs/firestore/query-data/query-cursors https://firebase.google.com/docs/reference/js/firebase.firestore.Query.html

最新更新