在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是否达到极限?
限制是在属性总数上,因此两种模式都可能达到20,000限制。
以下是计算可能有用的属性的一些示例:
本文档有两个属性:a
和b.c
{
a: "foo",
b: {
c: "bar"
}
}
本文档有四个属性:a
,b
,b.c
,d
{
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中从未在公开发布中应用时我们所拥有的东西。