Firestore中索引条目是什么?COUNT()查询为何索引条目数为1?
Firestore COUNT() 查询索引条目数始终为1的原因
核心原因
当你执行单字段相等条件的COUNT查询时,Firestore会利用该字段的默认单字段索引做优化处理:
- Firestore的单字段索引会把相同字段值的所有文档归类到同一个索引节点下。
- 不管这个节点下关联了多少文档,Firestore只需要读取这一个索引节点就能直接获取匹配文档的总数,因此计费的索引条目数固定为1。
对应你的场景
你的查询是whereEqualTo("score", "72").count(),属于单字段相等过滤:
- 由于
score字段有默认单字段索引,所有score=72的文档都被索引在同一个节点下。 - Firestore不需要逐个遍历匹配的文档,只需读取这个索引节点就能得到计数,所以无论匹配文档数量是几十还是几千,索引条目数都显示为1。
补充说明
只有当查询涉及更复杂的条件(比如多字段组合过滤、范围查询whereGreaterThan/whereLessThan等)时,Firestore需要读取多个索引节点,此时索引条目数才会随匹配情况变化。
内容的提问来源于stack exchange,提问作者flutroid
相关产品推荐
相关产品推荐

