2016-04-14 109 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求助)