選擇數據結構

請記住,當您在 Cloud Firestore 中構建數據時,您有幾個不同的選擇:

  • 文件
  • 多個集合
  • 文檔中的子集合

考慮每個選項的優勢,因為它們與您的用例相關。本指南概述了分層數據的一些示例結構。

文檔中的嵌套數據

您可以在文檔中嵌套複雜的對象,例如數組或映射。

  • 優點:如果您希望在文檔中保留簡單、固定的數據列表,這很容易設置並簡化您的數據結構。
  • 限制:這不像其他選項那樣具有可擴展性,尤其是當您的數據隨時間擴展時。隨著列表變大或不斷增長,文檔也會增長,這會導致文檔檢索時間變慢。
  • 什麼是可能的用例?例如,在聊天應用程序中,您可以將用戶最近訪問的 3 個聊天室作為嵌套列表存儲在他們的個人資料中。
  • 情書
    • 名稱 :
      第一個:“阿達”
      最後:“洛夫萊斯”
      出生 : 1815
      房間:
      0:“軟件聊天”
      1:“名人”
      2:“著名的 SWE”

子集合

當您擁有可能隨時間擴展的數據時,您可以在文檔中創建集合。

  • 優點:隨著列表的增長,父文檔的大小不會改變。您還可以獲得對子集合的完整查詢功能,並且可以跨子集合發出集合組查詢
  • 限制:您不能輕易刪除子集合。
  • 什麼是可能的用例?例如,在同一個聊天應用程序中,您可能會在聊天室文檔中創建用戶或消息的集合。
  • _書籤科學
    • 軟件
      名稱:“軟件聊天”
      • 用戶
        • 情書
          第一個:“阿達”
          最後:“洛夫萊斯”
        • 進步
          第一個:“莎莉”
          最後:“騎”`


    • 天體物理學
      • ...

根級集合

在數據庫的根級別創建集合以組織不同的數據集。

  • 優點:根級集合有利於多對多關係,並在每個集合內提供強大的查詢。
  • 限制:隨著數據庫的增長,獲取自然分層的數據可能會變得越來越複雜。
  • 什麼是可能的用例?例如,在同一個聊天應用程序中,您可以為用戶創建一個集合,為房間和消息創建另一個集合。
  • 用戶
    • 情書
      第一個:“阿達”
      最後:“洛夫萊斯”
      出生 : 1815
    • 進步
      第一個:“莎莉”
      最後:“騎”
      出生 : 1951
  • 房間
    • 軟件
      • 消息
        • 消息1
          來自:“愛麗絲”
          內容 : ”...”
        • 消息2
          來自:“騎”
          內容 : ”...”