Meteor.publish
le funzioni devono restituire i cursori, ma qui si restituisce direttamente un Number
che è il numero totale di documenti nella raccolta Tasks
.
Conteggio dei documenti in Meteor è un compito sorprendentemente più difficile di quello che appare se si vuole farlo nel modo corretto: utilizzando una soluzione sia elegante ed efficace.
Il pacchetto ros:publish-counts (una forcella di tmeasday:publish-counts) prevede conteggi accurati per piccole collezioni (100-1000) o conta "quasi" accurati per grandi collezioni (decine di migliaia) utilizzando l'opzione fastCount
.
Si può usare in questo modo:
// server-side publish (small collection)
Meteor.publish("tasks-count",function(){
Counts.publish(this,"tasks-count",Tasks.find());
});
// server-side publish (large collection)
Meteor.publish("tasks-count",function(){
Counts.publish(this,"tasks-count",Tasks.find(), {fastCount: true});
});
// client-side use
Template.myTemplate.helpers({
tasksCount:function(){
return Counts.get("tasks-count");
}
});
si otterrà un conteggio reattivo sul lato client e un server-side ragionevolmente performante implementazione.
Questo problema è discusso in una lezione di prova di Meteor (a pagamento) proiettile, che è una lettura consigliata: https://bulletproofmeteor.com/
è quelli 'Tasks' appartengono a utenti o niente? Perché sto chiedendo è che puoi mantenere quel conto dentro la raccolta degli utenti '' e te stesso e ottenerlo da lì – ajduke