2014-12-22 33 views
0

我有我发布的消息集合。现在我只希望本地收藏集仅在插入新消息时进行更新。但是,如果任何消息被删除,我不希望任何事情发生在本地收藏。我试过这个:如果在Meteorjs中添加新文档,只更新订阅

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

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

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

但_id字段仍然丢失。 –

+0

@FardeemMunir我以为你以前只有_id字段?现在你拥有所有的文件,但是_id? –

+0

不喜欢_id字段现在是一个对象。 –