Firestore索引限制

时间:2019-01-25 18:26:01

标签: firebase indexing google-cloud-firestore database-indexes

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个索引限制?该限制是按文档还是按收藏?

2 个答案:

答案 0 :(得分:2)

馆藏中的文件数量与规定的限制无关。缺少字段的文档将没有该字段的索引。 (Firestore不会为不存在的内容建立索引。)您可以remove indexes来节省空间和金钱。

答案 1 :(得分:1)

为您在集合中建立索引的每个字段或字段组合创建一个索引。每个文档可以包含40.000个此类索引。