簡體   English   中英

跟蹤集合中文檔的計數器變量的最佳方法

[英]Best way to keep track of counter variables for documents in a collection

我的項目有一個功能,允許關注/關注者類似於很多 social.networks。 因為我可能會經常得到這些數字的計數,所以我認為最好為關注者/關注計數創建一個單獨的度量,這樣我就不必 to.get() 所有這些來得到一個計數。 我目前正在選擇 3 個選項來跟蹤這個計數器變量。

選項 1 (將櫃台和收款分開)

[User Collection]           [Followers Collection]
(uid)                       (uid)
  -username                   -uid_1
  -follower_count             -uid_2

選項2 (將計數器和數據放在單獨的集合中,為數據做一個子集合)

[User Collection]           [Followers Collection]
(uid)                       (uid)
 -username                   -count
                             -[Followers]
                               -uid_1
                               -uid_2

選項 3 (將所有內容保存在一個集合中並使用 arrays 獲取所有數據+一次讀取計數——擔心這會導致文檔超過 1Mib 限制)

[User Collection]
(uid)
 -username
 -following
    -[uid_1, uid_2]                             

使用其中一種方法是否存在明顯的問題? 或者在一天結束時都會導致相同的成本/查詢時間?

任何時候你有一個可以無限增長的數組,它可能應該表示為子集合中的文檔。 這就是 Firestore 的工作原理。 如果你願意,你可以有一個數組,但正如你所說,你有超過限制的風險,而且你有一個非常大的問題,解決起來比讀取和寫入的成本更加困難和昂貴。

您是否使用集合或子集合完全取決於您以及它如何最適合您的查詢。 由於我們不知道您的查詢或您預期的安全規則,所以真的不可能說哪個更好。 選擇滿足您需求的那個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM