我的文档结构类似于-
fieldOne = "value1"
fieldTwo = "value2"
fieldThree = "value3<Map1 = flights <Map2 = [flight_number] = <travel_date = TimeStamp>>>"
这里的flight_number
(下图中的LH760)键是动态的,我事先不知道它的值。
我想查找travel_date等于今天的所有文档。我怎样才能最有效地编写查询(在Kotlin中)?
我尝试通过created
过滤(作为我自己的教程-而不是作为我的需求的解决方案),但没有返回文档。所以我无法绕着如何在这样一个复杂的嵌套结构中进行查询-
.whereEqualTo("created", LocalDateTime.now())
请注意:created
时间戳可以不同于travel_date
时间戳。
1条答案
按热度按时间k5ifujac1#
Firestore API无法查询数组中的特定字段或Map的动态键。
你可以做的是修改/扩充数据模型以适应你的用例,因为你想查询旅行日期,所以添加一个顶级数组字段
travel_dates
,在这里存储所有的travel_date
值,这些值也存储在flights
字段中,格式类似于"2023-01-17"
(2023年1月17日)。有了这个字段,您就可以查询新的
travel_dates
字段,以获取今天的所有文档,内容如下: