我想知道Firestore中数组的存储大小限制是什么。我想在数组中创建数百万个索引,并希望将数据存储为JSON
对象。
数组如下所示:
[{id:1,name:'shakti',userdata:2122},
{id:0.55,name:'shakti',userdata:2122},
{id:1.58,name:'shakti',userdata:2122},
{id:2.58,name:'shakti',userdata:2122},
{id:1.5,name:'shakti',userdata:2122}];
我浏览了文档,但没有得到任何适当的指南there。
答案 0 :(得分:2)
对于Firestore阵列没有具体限制。该限制适用于文档,因为在Firestore中文档具有限制。因此,在文档中可以放入多少数据方面存在一些限制。根据有关usage and limits的官方文档:
文档的最大大小:1 MiB(1,048,576字节)
如您所见,单个文档中的数据总数限制为1 MiB。当我们谈论存储文本时,您可以存储很多,但是随着数组变大,请注意此限制。
因此,只要您在此限制内存储数据,就不会有问题。如果您认为可以克服此限制,建议您将这些数据存储在集合中。在这种情况下,没有任何限制。您可以存储任意数量的文档。
答案 1 :(得分:0)
每个文档可以包含1,048,576字节的数据。此计算包括厨房水槽,其中包括文档名称中的字符数和它所在的所有集合中的字符数。因此,一个完全空白的文档中已经有一些字节了。也就是说,您总共还有1,048,576字节。
不幸的是,单个文档不可能包含具有数百万个项目的数组,因为文档本身几乎只有一百万个可用字节,并且数组中的每个项目都将消耗1个以上的字节(除非它们所有布尔值或null,这是保证消耗单个字节的唯一值)。具有两个项目(“猕猴桃”和“橙色”)的名为“ array”的数组消耗16个字节。如果数组中的每个项目都是一个包含大约这么多字符的字符串,则该数组最多可以存储25万个项目。要继续添加到该阵列,您可以创建一个溢出文档(使用单个阵列),该文档需要另外25万个项目,依此类推。这种“实用阵列”可以容纳数百万个项目。