簡體   English   中英

獲取 Firebase collectionGroup 中每個項目的父文檔

[英]Get parent document for each item in Firebase collectionGroup

我有 SQL 背景,正在嘗試了解文檔存儲。 對於 Firebase 數據庫結構如下:

  • 約翰(博士)
    • 餐廳評論(合集)
      • 評論 1(文檔)
      • 評論 2(文檔)
  • 保羅(博士)
    • 餐廳評論(合集)
      • 評論 3(文檔)
      • 評論 4(文檔)

我正在使用 CollectionGroup 獲取特定餐廳的所有評論(餐廳 ID 在評論文檔中)。 這很好用。 我還想獲取有關用戶的一些元數據。 在迭代返回的每個評論時,我可以通過輔助查詢來實現這一點:

restaurantReviewsSnapshot.forEach(reviewSnap => {
   reviewSnap.ref.parent.parent.get().then(reviewerSnap => {
   ...

然而,這效率不高。 是否可以一次性通過某種連接操作獲取這些相關數據?

在您的情況下,NoSQL 世界中的一種經典方法是以易於構建和執行查詢的方式對數據進行非規范化。

更具體地說,這意味着在每個 Review 文檔中,您將復制其作者的數據。

這種方法的一個副作用是您需要保持值同步(即用戶/作者文檔中的值和審閱文檔中的值)。 如果修改了作者文檔,則可以使用觸發的雲函數來完成此同步。


同樣,您不應該害怕復制數據和非規范化您的數據模型。 這是一篇關於 NoSQL 數據建模方法的“著名”帖子: https : //highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/

暫無
暫無

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

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