firestore数组结构索引限制

问题描述 投票:2回答:1

在firestore文档中,有一个描述如下

索引限制 - 单个文档只能有20,000个属性才能使用Cloud Firestore内置索引。如果类似数组的数据结构增长到数万个成员,则可能会遇到此限制。

https://cloud.google.com/firestore/docs/solutions/arrays

我想知道如何解释这些描述。两种模式中哪一种符合限制?

<pattern 1: categories in one document above 20,000> 
    doc1
     - id:111  
     - categories: {aaaa:true, aaab:false, aaac:true, aaad: false, aaae:true, aaaf:true, aaag:true, aaah:true, aaai:true, aaaj:true, ,,,,,,,,,,, }

另一种模式

<pattern 2:  categories in one document is a few but as a collection of document number of categories above 20,000> 
    doc_1
    - id:111
    categories{aaaa:true, aaab:false, aaac:true, only several element}
    doc_2
    - id:111
    categories{aaad:true, aaae:false, aaaf:true, only several element}
    doc_3
    - id:111
    categories{aaag:true, aaah:false, aaai:true, only several element}

我相信模式1达到极限,但模式2是否达到极限?

firebase google-cloud-firestore
1个回答
2
投票

限制是在属性总数上,因此两种模式都可能达到20,000限制。

以下是计算可能有用的属性的一些示例:

本文档有两个属性:ab.c

{
  a: "foo",
  b: {
   c: "bar"
  }
}

本文档有四个属性:abb.cd

{
  a: "foo",
  b: {
   c: "bar",
  },
  d: ["quz", "qaz"]
}

这份文件还有四个:

{
  a: "foo",
  b: {
   c: "bar",
  },
  d: ["quz", "qaz", "apple", "banana"]
}

这份文件有五个:

{
  a: "foo",
  b: {
   c: "bar",
  },
  d: ["quz", "qaz"],
  e: ["apple", "banana"]
}

因此,它不是关于任何单个数组的长度或嵌套事物的深度,而是关于可查询值的总数。


编辑03/05/18:当我说数组成员分别对索引计数时,我错了。他们没有,这就是当Firestore在Alpha中从未在公开发布中应用时我们所拥有的东西。

© www.soinside.com 2019 - 2024. All rights reserved.