在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是否达到极限?
答案 0 :(得分: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状态时从未在公开发布中应用的东西。