Ste*_*röm 7 firebase google-cloud-firestore
新手到这里的firestore,并努力克服不同领域限制范围过滤器.
用例是存储和检索日历解决方案的事件/事件数据.
日历视图可以是不同的周,月等,即,每个特定视图具有定义的开始和结束时间戳.
存储事件具有开始时间戳和结束时间戳.
我需要查询所有开始,结束或跨越视图开始和结束时间戳的事件.
使用sql后端实现这一点很简单,但是对于firestore,不同字段上的范围过滤器似乎使这个变得不可能吗?有什么想法可以解决这个问题吗?或者是否计划在firestore中支持此类功能?
BR Stefan
当我第一次遇到这个问题时,它有助于首先理解为什么存在这个限制。是的,这在 SQL 数据库中可能是微不足道的,但 SQL 数据库不会像 Firestore 那样扩展。Firestore 可能由Google Big Table支持,由于索引的工作方式,当范围过滤器用于不同的属性时,它不会缩放。本质上,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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1145 次 |
| 最近记录: |