流星订阅只获取新文档

问题描述:

只是想知道是否有一种方法来设置我的流星订阅从mongo集合只加载新文档,避免同步删除和更新(因为它们与显示的数据不相关给用户)。
为什么我需要那个?似乎任何时候我在离线时段后执行Meteor.subscribe,整个集合都会从服务器再次发送到客户端,而我只需要新记录。流星订阅只获取新文档

我认为这是为了保持本地/远程数据库的完整性,但由于我的应用程序计划在线/离线工作(我也使用groundDB),在我看来这将是非常低效的数据使用。

在此先感谢。

您可以创建仅发送新文档的发布。像:

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