公開機能を実装する方法は2つあります。
- カーソル(またはカーソルの配列)を返すことによって
- this.added()、this.changed()、this.removed()を使用する。
方法2でのみ、返されたドキュメントを変更できます。
Meteorのドキュメント
// server: publish the rooms collection
Meteor.publish("rooms", function () {
return Rooms.find({});
});
と同等です:
// server: publish the rooms collection
Meteor.publish("rooms", function () {
var self = this;
var handle = Rooms.find({}).observeChanges({
added: function(id, fields) { self.added("rooms", id, fields); },
changed: function(id, fields) { self.changed("rooms", id, fields); },
removed: function(id) { self.added("rooms", id); },
}
});
self.ready();
self.onStop(function () { handle.stop(); });
});
2番目のサンプルでは、次のように、公開する前に「field」パラメーターを変更できます。
added: function(id, fields) {
fields.newField = 12;
self.added("rooms", id, fields);
},
出典:この投稿 。