Firestore查询whereGreater在一个字段上,OrderBy在不同字段上

google-cloud-firestore 匿名 | 2020-08-01 20:15:22


我想查询集合中符合位置字段条件的所有文档,这些文档的位置字段条件满足IsGreaterThenOrEqualto和isLessThanOrEqualTo,并在“人口”字段(即数字)上按降序排列这些文档,并获取前10个填充位置。
_firestore.collectionGroup(_collectionGroupName)
.where("location",isGreaterThanOrEqualTo: lowGeoPoint)
.where("location",isLessThanOrEqualTo: highGeoPoint)
.orderBy("population", descending: true)
.limit(10)
.get();

Firestore给出了我需要添加的例外情况。orderBy(“location”)首先,如果我这样做并为该查询添加复合索引,它只需按位置对文档排序,按填充排序不起作用,但我不希望按位置排序。我只想按“人口”排序。有什么解决办法吗?





3 答案



很抱歉,firestore不是这样工作的。资源:Link
我从未尝试过,但希望它能起作用。
请尝试一下:
_firestore.collectionGroup(_collectionGroupName)
.where("location",isGreaterThanOrEqualTo: lowGeoPoint)
.where("location",isLessThanOrEqualTo: highGeoPoint)
.where("population",isGreaterThan: "")
.orderBy("population", descending: true)
.limit(10)
.get();

2020-08-03 01:21:16
匿名


很抱歉,firestore不是这样工作的。资源:Link
我从未尝试过,但希望它能起作用。
请尝试一下:
_firestore.collectionGroup(_collectionGroupName)
.where("location",isGreaterThanOrEqualTo: lowGeoPoint)
.where("location",isLessThanOrEqualTo: highGeoPoint)
.where("population",isGreaterThan: "")
.orderBy("population", descending: true)
.limit(10)
.get();

2020-08-02 14:42:00
匿名


很抱歉,firestore不是这样工作的。资源:Link
我从未尝试过,但希望它能起作用。
请尝试一下:
_firestore.collectionGroup(_collectionGroupName)
.where("location",isGreaterThanOrEqualTo: lowGeoPoint)
.where("location",isLessThanOrEqualTo: highGeoPoint)
.where("population",isGreaterThan: "")
.orderBy("population", descending: true)
.limit(10)
.get();

2020-08-01 20:15:27
匿名


World is powered by solitude
备案号:湘ICP备19012068号