我有firestore集合 事件 。
每个 事件 都有 日期 ,这是包含两个字符串的对象数组, startTime 和 endTime 。
是否有可能重新检索列出一个 startTime 的 事件 ,这比当前时间更长?
答案 0 :(得分:4)
您的文档结构无法做到这一点。您无法在查询中定位数组元素。相反,您可能希望将max startTime存储为文档中的顶级字段,而是在查询中使用该字段。
复制这样的数据以适合您的查询很常见。对于NoSQL数据库,数据结构应始终遵循您打算进行的查询。
答案 1 :(得分:3)
您可以通过使用“ array-contains”查询firebase来获取整个文档,但是您必须搜索对象的确切属性和对象本身。您的情况是“ endTime”和“ startTime”。
firebase.firestore.collection('events').where("date", "array-contains", {endTime: "March 18 ....", startTime: "March 19 ...."})