查询对象的Firestore数组

Iva*_*vic 3 firebase google-cloud-firestore

我有消防站收集活动

每个事件都有日期是对象的数组与两个字符串,开始时间结束时间

在此处输入图片说明

是否有可能检索列表中一个startTime大于当前时间的所有事件

小智 6

您可以通过使用“array-contains”查询 firebase 来获取整个文档,但您必须搜索对象的确切属性以及确切的对象本身。在你的情况下“endTime”和“startTime”。

firebase.firestore.collection('events').where("date", "array-contains", {endTime: "March 18 ....", startTime: "March 19 ...."})
Run Code Online (Sandbox Code Playgroud)


Dou*_*son 5

您的文档结构无法做到这一点。您无法在查询中定位数组元素。相反,您可能希望将最大startTime作为顶级字段存储在文档中,并在查询中使用它。

像这样复制数据以适合您的查询是很常见的。对于NoSQL数据库,数据结构应始终遵循要进行的查询。