在documentation Firestore中,这些限制包括:
每个文档的最大索引条目数: 40,000
文档索引条目的最大大小总和: 8 MiB
我在理解文档中“文档”的含义时遇到了一些困难。它们是指单个文档还是特定集合的整个文档集?
例如,假设我有一个包含10,000个文档的集合,每个文档包含相同的2个字段:
Document: `students/00001`
name: "Jeff"
age: 32
Document: `students/00002`
name: "Mary"
age: 28
...
Document: `students/10000`
name: "Anne"
age: 45
根据文档,Firestore将为每个字段按升序创建一个索引,并为每个字段按降序创建另一个索引。因此,每个文档将有4个索引,整个文档集合只有这4个索引,因为它们都有相同的字段。
一切都很好。
但是,现在假设我有一个集合,其中也包含10,000个文档,但是每个文档包含 2个字段,它们总是彼此不同的:
Document: `students/00001`
B2DcG6g9w: true
YwY3g642D: true
Document: `students/00002`
A3h7k3e6B: true
w2Fh0j1g8: true
...
Document: `students/10000`
8n4545f7k: true
j2hle4oOp: true
Firestore将为每个字段按升序创建一个索引,并为每个字段按降序创建另一个索引。因此,我们每个文档只有 4个索引。但是,由于每个文档的索引不同,因此我们为集合中的所有文档提供总共40,000个索引。
问题:我是否已达到40,000个索引限制?该限制是按文档还是按收藏?
答案 0 :(得分:2)
馆藏中的文件数量与规定的限制无关。缺少字段的文档将没有该字段的索引。 (Firestore不会为不存在的内容建立索引。)您可以remove indexes来节省空间和金钱。
答案 1 :(得分:1)
为您在集合中建立索引的每个字段或字段组合创建一个索引。每个文档可以包含40.000个此类索引。