流星订阅只获取新文档
问题描述:
只是想知道是否有一种方法来设置我的流星订阅从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();
});
});
谢谢。有用!你知道是否有一种方法可以观察集合中的数组中的更改吗?我的意思是,任何时候检测到一个新的对象被推入一个数组... – Ruben
然后,你也应该观察'changed'。如果您只想发送数组中的更改,您也可以手动进行比较。但是这变得更加复杂。 – Mitar