我在Firestore中具有以下数据结构
- runners (Collection)
-- uid_1 (Document)
--- name: James
--- height: 170
--- weight: 54
--- runTimeInSeconds: [ 540, 533, 530, 500 ] // this is array of 4
-- uid_2 (Document)
--- name: Larry
--- height: 168
--- weight: 51
--- runTimeInSeconds: [ 521, 611, 501 ] // this is array of 3 runs
-- uid_3 (Document)
--- name: Ben
--- height: 180
--- weight: 76
--- runTimeInSeconds: [ 621, 533 ] // this is array of 2 runs
我要按以下顺序获取以下文档(runTimeInSeconds大于600): uid_2后跟uid3。但是我不想看到uid_1。
我应该写什么firestore查询?
我尝试过:
runnersRef.where("runTimeInSeconds", ">", 600) // this does not work.
答案 0 :(得分:1)
您不能对列表中的值进行范围查询。为列表项创建的索引无法正常工作。使用array_contains运算符时,它只能检测到列表中的值存在。如果要使用范围运算符,则实际上需要将每个字段列表项目拆分为一个新集合,其中每个项目都有单独的文档。每个文档都应有一个字段,其持续时间字段为数字。然后,您可以将其他字段复制到每个文档中,或者只为跑步者存储对原始文档的引用。