仅在Meteorjs中添加新文档时才更新订阅

时间:2014-12-22 17:19:01

标签: javascript mongodb meteor

我发布了一个Messages集合。现在,我希望仅在插入新消息时才更新本地集合。但是如果任何消息被删除,我不希望任何事情发生在本地集合中。我试过这个:

Meteor.publish('messages', function() {
  var self = this;

  Messages.find().observe({
    added: function(doc) {
      self.added('messages', doc._id);
    }
  });

  self.ready();

});

这样可行,但实际文档不会发送给客户端。在浏览器中,如果我运行Messages.find().fetch(),我会为每个文档返回此对象:

{
  _id: LocalCollection._ObjectID
  __proto__: Object
}

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您在added函数中犯了一个小错误,您必须将实际文档添加为第三个参数。

Messages.find().observe({
  added: function(doc) {
    self.added('messages', doc._id, doc);
  }
});