2016-04-14 70 views
4

早上好,观察变化。 流星采集观测有点麻烦。流星收集rihtly

我试图抓住的时刻,当我收集的改变(增加录音功,删除...)

的问题是,我的观察报“补充说:”函数被调用,不仅当我添加文件集合,但它调用当我运行流星项目和流星系统添加已经存在的记录到数据库。 (它要求从集合中的每个exisiting文件)

请帮我配置我的观察,我需要赶上仅将用户从开始系统初始化变化,但不会。 也许这是在流星数据库初始化后在服务器端初始化我的观察者的方式?

这里是我的代码:

/app/collections/collections.js

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

groups.allow({ 
    insert:function(){ 
     return true; 
    }, 
    update:function(){ 
     return true; 
    }, 
    remove:function(){ 
     return true; 
    } 
}); 

/server/observers/groups_observer.js

groups.find().observe({ 
added: function(document){ 
    console.log('groups observe added value function'); 
    console.log(document); 
}, 
changed:function(new_document, old_document){ 
    console.log('groups observe changed value function'); 
}, 
removed:function(document){ 
    console.log('groups observe removed value function'); 
} 
}); 
+1

[流星光标观察添加行为] (http://stackoverflow.com/questions/10218534/cursor-observeadded-behavior-in-meteor) –

+0

感谢您的帮助。此解决方案想要将created_at字段添加到文档,但它可以工作。 – BagrijRoman

回答

3

方式要解决此问题是:

  • created_at字段添加到文件

  • 通过created_at领域

新的文件过滤器添加到观察者当我添加文档到集合:

groups.insert({ 
      created_by:Meteor.userId(), 
      created_at: new Date(), 
      ....... 
     }); 

新,工作观察者的版本

var now = new Date(); 
groups.find({created_at : {$gt:now}}).observe({ 
    added: function(document){ 
     console.log('groups observe added value function'); 
     console.log(document); 
    }, 
    changed:function(new_document, old_document){ 
     console.log('groups observe changed value function'); 
    }, 
    removed:function(document){ 
     console.log('groups observe removed value function'); 
    } 
}); 

这里得到解决同样的问题:cursor.observe({added}) behavior in Meteor

感谢@Francesco Pezzella求助)