新手到这里的firestore,并努力克服不同领域限制的范围过滤器。
用例是存储和检索日历解决方案的事件/事件数据。
日历视图可以是不同的周,月等,即,每个特定视图都有一个已定义的开始和结束时间戳。
存储事件具有开始时间戳和结束时间戳。
我需要查询所有开始,结束或跨越视图开始和结束时间戳的事件。
使用sql后端实现这一点很简单,但是对于firestore,不同字段上的范围过滤器似乎使这不可能吗? 有什么想法可以解决这个问题吗?或者是否计划在firestore中支持这种功能?
BR 斯蒂芬
答案 0 :(得分:2)
当我第一次遇到这个问题时,首先要了解为什么存在此限制。是的,这在SQL数据库中可能是微不足道的,但SQL数据库不会像Firestore那样扩展。 Firestore可能由Google Big Table支持,because of the way that indexing works,当在不同的属性上使用范围过滤器时,它不会扩展。从本质上讲,Firestore不会让你做一些在应用扩展时会困扰你的事情。
我能看到的最佳选择是做两个查询,然后将结果合并到一个集合中。这是一些sudo代码:
let eventsStartingIn2017 = calendar_events.where("start_date", ">=", "1/1/2017").where("start_date", "<=", "31/12/2017")
let eventsEndingIn2017 = calendar_events.where("end_date", ">=", "1/1/2017").where("end_date", "<=", "31/12/2017")
let 2017Events = new Set();
2017Events.add(eventsStartingIn2017);
2017Events.add(eventsEndingIn2017);