Meteor.publish
funkcje powinny powrócić kursory, ale tu wracasz bezpośrednio do Number
która jest całkowita liczba dokumentów w kolekcji Tasks
.
Zliczanie dokumentów w Meteor jest zaskakująco trudniejszym zadaniem, niż się wydaje, jeśli chcesz zrobić to we właściwy sposób: używając rozwiązania eleganckiego i skutecznego.
Pakiet ros:publish-counts (rozwidlenie tmeasday:publish-counts) zapewnia dokładne liczby dla małych zbiorów (100-1000) lub „prawie” dokładnych liczy większych zbiorów (dziesiątki tysięcy) za pomocą opcji fastCount
.
można użyć go w ten sposób:
// 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");
}
});
dostaniesz po stronie klienta reaktywny liczyć, jak również po stronie serwera rozsądnie wydajnych realizacji.
Ten problem jest omawiany w (płatne) kuloodporne Meteor lekcji, która jest zalecana literatura: https://bulletproofmeteor.com/
jest tych 'Tasks' należą do użytkowników lub cokolwiek? Dlaczego pytam o to, że możesz utrzymać tę liczbę wewnątrz kolekcji 'users' i tam ją pobrać – ajduke