查询Firestore时,如果我包含orderBy,它将限制为10条记录。删除orderBy将返回所有100条记录。
我尝试通过不同的字段(例如id)进行排序,但是无论结果如何都会受到限制。我还根据需要创建了适当的复合索引。
以下内容将返回10行:
db.collection('transactions').where('uid', '==', 'myuserid').orderBy('transaction.date', 'desc').orderBy('id', 'asc').limit(100).get()
没有orderBy,则返回预期的100行。但是,当然,结果是无序的:
db.collection('transactions').where('uid', '==', 'myuserid').limit(100).get()
编辑:还发现执行1 orderBy似乎也可以:
db.collection('transactions').where('uid', '==', 'myuserid').orderBy('transaction.date', 'desc').limit(100).get()
我猜这与索引和数据彼此不相邻有关。但是没有索引的可见性,就无法知道。但是,始终有10个结果非常奇怪。
答案 0 :(得分:0)
不确定是否有帮助,但是默认情况下,根据所提供字段的存在,对请求字段的orderBy
也会进行过滤。返回的结果集不包含没有请求字段的记录。
答案 1 :(得分:0)
感谢每个人的评论,他们将我引向了解决方案-碰巧有10个文档中有一个“ id”键,因此这就是为什么只有这些文档才出现的原因。我错误地认为,通过按“ id”进行排序,它将按文档的ID进行排序。