2017-04-10 122 views
0

只是想知道是否有一種方法來設置我的流星訂閱從mongo集合只加載新文檔,避免同步刪除和更新(因爲它們與顯示的數據不相關給用戶)。
爲什麼我需要那個?似乎任何時候我在離線時段後執行Meteor.subscribe,整個集合都會從服務器再次發送到客戶端,而我只需要新記錄。流星訂閱只獲取新文檔

我認爲這是爲了保持本地/遠程數據庫的完整性,但由於我的應用程序計劃在線/離線工作(我也使用groundDB),在我看來這將是非常低效的數據使用。

在此先感謝。

回答

1

您可以創建僅發送新文檔的發佈。像:

Meteor.publish('newDocumentsOnly',() => { 
    let initializing = true; 
    const handle = Collection.find().observeChanges({ 
    added: (id, fields) => { 
     if (initializing) return; 
     this.added('Collection', id, fields); 
    } 
    }); 
    initializing = false; 
    this.ready(); 
    this.onStop(() => { 
    handle.stop(); 
    }); 
}); 
+0

謝謝。有用!你知道是否有一種方法可以觀察集合中的數組中的更改嗎?我的意思是,任何時候檢測到一個新的對象被推入一個數組... – Ruben

+0

然後,你也應該觀察'changed'。如果您只想發送數組中的更改,您也可以手動進行比較。但是這變得更加複雜。 – Mitar