从
documentation
Firestore有以下限制:
-
每个文档的最大索引条目数:
四万
-
文档索引项大小的最大总和:
8 MIB
我很难理解这里的“文档”是什么意思。它们是指一个单独的文档,还是指一个特定集合的整个文档集?
例如,假设我有一个集合,其中包含10000个文档,并且每个文档包含相同的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个相同的索引,因为它们都有相同的字段。
一切都好。
但是,现在假设我有一个集合,其中也包含10000个文档,但是每个文档都包含
两个字段始终不同
:
Document: `students/00001`
B2DcG6g9w: true
YwY3g642D: true
Document: `students/00002`
A3h7k3e6B: true
w2Fh0j1g8: true
...
Document: `students/10000`
8n4545f7k: true
j2hle4oOp: true
FireStore将按升序为每个字段创建一个索引,按降序为每个字段创建一个索引。这样,我们就有了
每个文档只有4个索引
. 但是,由于每个文档的这些索引不同,我们将有一个
集合中所有文档共有40000个索引
.
问题:
我是否达到了40000个索引限制?这种限制真的是通过文件还是通过托收来实现的?