2016-04-14 12 views
4

おはようございます。 流星群の観測に少し問題があります。流星群の変化を観察する

私は私のコレクションが変更されたとき、瞬間をキャッチしよう(削除、追加recorを...)

問題は、私の観測では、私がコレクションに文書を追加するときに機能がないだけと呼ばれて「追加」が、それは私が流星プロジェクトを実行し、流星システムがデータベースに既存のレコードを追加するときに呼び出されます。 (コレクションから各既存のドキュメントを呼び出す)

私のオブザーバを設定するのを手伝ってください。私はユーザからの変更だけを捕捉する必要がありますが、システムの初期化を開始する必要はありません。 流星データベースの初期化後に私の観察者をサーバー側で初期化する方法かもしれませんか?ここで

は私のコードです:

/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)を

関連する問題