的不同看法現場計數我想創建一個流星消息應用程序(使用AUTH分支)。它有一個Messages集合,每個文檔都有一系列回覆文檔(「回覆」)。在側邊欄中,我們有不同的消息收集視圖,其中每個視圖都有一個「查詢」字段,該字段作爲Meteor.publish('messages')...方法的參數提供。流星:維持收集
到目前爲止這麼好。如果我點擊一個視圖,頁面的主要部分將顯示與查詢匹配的消息列表。對於每封郵件,如果有任何回覆比當前用戶上次打開郵件時更新,或者她從未打開過郵件,則會以粗體顯示。我通過爲每個包含{user_id,...,read_at:...}記錄的消息維護一個「read_by」字段來實現這一點。這工作也很漂亮。
的問題是,我需要的邊欄中的每個視圖,以顯示與未讀郵件的數量的徽章(按照邏輯在前面的段落)對於每個視圖,而不僅僅是當前選擇的一個。
我該如何解決這個問題?據我所知,這意味着我需要針對Messages集合維護大量的實時查詢。與此同時,客戶端無法訂閱整個Messages集合 - 假設它擁有數百萬個文檔。無論服務器上的數據庫集合中有多少文檔,客戶端都必須保持活躍狀態。
我懷疑,這需要不同的架構設計(這是不是一個問題),但我不能完全看到它。
做信息時代了呢? –
不,它更像是一個電子郵件應用程序而不是聊天應用程序,所以計數需要反映數據庫中的狀態。除非手動刪除,否則我們會永久保留每條消息並在數據庫中回覆。 – stiang
這些是共享郵件(在許多用戶之間),我假設「反饋」在閱讀郵件時必須是實時的? –