文档在Meteor中插入db后会消失

时间:2016-07-18 21:58:02

标签: mongodb meteor

尝试使用

添加到我非常简单的集合中
Template.home.events({    
'click #send-button': function(e, t) {
    e.preventDefault();
    msg = {
        from: Meteor.user()._id,
        to: Meteor.user().penpal,
        sent: new Date(),
        message: $('#message').val()
    };      
    messages.insert(msg);
    console.log(messages.find().fetch());
}
})

在collections.js我有

messages = new Mongo.Collection('messages');

messages.allow({
    'insert': function (userId,doc) {
      return true; 
}
  });

消息被插入但控制台显示每次都被覆盖,例如它添加了我的新消息,但也没有保留所有旧消息。当我尝试使用

呈现消息时
Template.home.helpers({
    'messages': function(){
        return messages.find().fetch();
    }
})

然后

{{#each messages}}...{{/each}}

在html中我看到眨眼间出现的消息然后再次消失。

请帮忙!我很绝望!

1 个答案:

答案 0 :(得分:1)

基于Q& A,您似乎只需要发布该集合并订阅它:

服务器:

Meteor.publish('myMessages',function(){
  const me = this.userId;
  if ( me ){
    return messages.find({ $or: [{ from: me },{ to: me }]});
  }
  this.ready();
});

(在上面的代码中,集合被过滤为与当前用户相关的消息,您可以根据需要定义自己的过滤器。)

客户端:

Meteor.subscribe('myMessages');