Firestore文档索引限制疑问:单文档索引条目总和上限解读
搞懂Firestore单个文档的索引条目上限规则
我来给你把这个规则掰扯明白,你完全搞反啦——这个20000的上限是针对单个文档的,和集合里的文档总数半毛钱关系都没有!
具体来说,得先把规则里的两个核心概念理清楚:
- 单字段索引条目:Firestore默认会给文档里的每个字段自动创建单字段索引(除非你手动禁用)。也就是说,你的文档里每有一个带索引的字段,就会产生1条单字段索引条目。比如你一个文档里有20个开启索引的字段,那这部分就占了20条。
- 复合索引条目:你手动创建的每一个复合索引,如果这个文档包含该索引所需的所有字段,那么这个文档就会在这个复合索引里占1条条目。比如你创建了30个复合索引,而这个文档都符合这些索引的字段要求,那这部分就加30条。
规则里说的「总和上限为20000」,就是把这个文档的单字段索引条目数 + 复合索引条目数加起来,不能超过20000。
举个直观的例子:
假设你有一个文档,里面有1000个带单字段索引的字段,同时被18000个复合索引包含,那总条目数是1000+18000=19000,这是符合要求的;但如果这个文档有12000个单字段索引字段,又被9000个复合索引包含,总和21000就超了,这时候Firestore就会拒绝写入这个文档。
再强调一遍:这个限制和集合里有多少个文档完全无关,集合的文档容量远大于这个数,别搞混啦!
内容的提问来源于stack exchange,提问作者Mohammad Shraim
相关产品推荐
相关产品推荐

