【问题标题】:Are Cloud Firestore subcollections included in document size calculation文档大小计算中是否包含 Cloud Firestore 子集合
【发布时间】:2017-11-28 02:28:59
【问题描述】:

如果 Cloud Firestore 中的文档有子集合,这些子集合中的文档是否包含在父文档的大小中?例如,如果我有如下数据:

rootCollection/
    parentDocument:
        field1: "value1"
        field2: "value2"
        ...
        subCollection/
           childDocument:
                anotherField: "OfGreen" 
                ...

childDocument的大小包含在parentDocument的大小中

storage size calculation documentation 看来,子集合的内容并不包含在父文档大小中,但我只是想澄清一下。

谢谢!

【问题讨论】:

  • 你能举例说明这个答案的重要性吗?
  • @FrankvanPuffelen 据我了解,最大文档大小为 1MB。如果rootCollection 是chatRooms/,并且parentDocument 有一个chatData 的子集合,那么100 条chatRooms * 1000 条聊天消息可以加起来。我不是说我有这个问题,我只是想更好地理解。
  • 啊,在这种情况下:该限制适用于单个文档,不包括其子集合(这将是一个非常不切实际的限制)。如果你的测试结果不同,请告诉我。
  • 太好了,感谢您的澄清!我预计不会有任何问题,但如果遇到问题,我一定会提出来。

标签: firebase google-cloud-firestore


【解决方案1】:

@frank-van-puffelen 已经说明了这一点,但我想重新声明并分享官方参考资料以进一步强调。

TL;DR;

子集合的大小不会以任何方式影响父文档的大小。

参考

Firestore 的Choose a Data Structure 文档是比较设计备选方案的非常清晰和及时的参考。在此页面Subcollections 部分下,声明:

优点:随着列表的增长,父文档的大小不会改变。您还可以获得对子集合的完整查询功能。

此外,在 Working with Arrays, Lists, and Sets 文档的Limitations 部分下,强调:

文档大小 - Cloud Firestore 针对小文档进行了优化,并对文档实施了 1MB 的大小限制。如果你的数组可以任意扩展,最好使用子集合,它的扩展性能更好。

最后,虽然它与问题没有直接关系,但我想借此机会在这里提及它,因为当我遇到与 OP 相同的问题时,它会让我进入正确的文档页面:ecgan/firestore-considerations是 Github 上的一个简短而引人注目的列表,它试图总结 Firestore 的注意事项和事先考虑的事项。

【讨论】:

    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 2019-03-29
    • 2018-03-17
    相关资源
    最近更新 更多