Meteor订阅只获取新文档

时间:2017-04-10 18:14:21

标签: mongodb meteor grounddb

只是想知道是否有办法设置我的meteor订阅只从mongo集合加载新文档,避免同步删除和更新(因为它们与显示给用户的数据无关)。
为什么我需要那个?在离线期间我似乎随时都会Meteor.subscribe,所以WHOLE集合会再次从服务器发送到客户端,而我只需要新的记录。

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

提前致谢。

1 个答案:

答案 0 :(得分: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();
  });
});