Ich habe einen 1 Cursor, um die Gesamtzahl der Wähler zu berechnen. Ich habe zwei Methoden, wo zuerst die Gesamtzahl der Wähler zu meinen Gunsten zählt, zweite Methode zählt die Gesamtzahl der Wähler stimmten.Mehrere Methodenaufrufe auf Collection.observe() Ereignis in Meteorjs
LIB/collection.js
infavourcount = new Mongo.Collection('infavourcount');
votedone = new Mongo.Collection('votedone');
SERVER/publish.js [Wähler zu meinen Gunsten zählen]
function upsertInFavourCount() {
var yes = voters.find({favour: {$regex:"Y", $options: 'i'}}).count();
var maybe = voters.find({favour: {$regex:"M", $options: 'i'}}).count();
var no = total - (yes + maybe);
infavourcount.upsert('infavour',
{
yes: yes ,
maybe: maybe,
no:no
}
);
}
// null name means send to all clients
Meteor.publish(null,function() {
upsertInFavourCount();
return infavourcount.find();
});
SERVER/publish.js [erfolgreich Votings zählen]
function upsertVoteDone() {
var done = voters.find({voted: {$regex:"Y", $options: 'i'}}).count();
votedone.upsert('votedone',
{
done: done
}
);
}
Meteor.publish(null,function() {
upsertVoteDone();
return votedone.find();
});
var cursor = voters.find();
cursor.observe({
changed: upsertVoteDone
});
CLIENT/template/home.js
Template.home.onCreated(function(){
Meteor.subscribe('voters');
Meteor.subscribe('infavourcount');
Meteor.subscribe('votedone');
});
Template.home.helpers({
yesvote : function() {
return infavourcount.findOne().yes;
},
maybevote : function() {
return infavourcount.findOne().maybe;
},
novote : function() {
return infavourcount.findOne().no;
},
votedone : function() {
return votedone.findOne().done;
}
});
Mein Problem ist, wie mehrere Upsert-Methoden in einer Beobachtungsmethode Meteor veröffentlichte Sammlung aufrufen.