Я смотрел на какой-то метеоритный код, и я увидел это:Метеор оптимизация шаблон
Template.notifications.helpers({
notifications: function() {
return Notifications.find({userId: Meteor.userId(), read: false});
},
notificationCount: function(){
return Notifications.find({userId: Meteor.userId(), read: false}).count();
}
});
Так мне было интересно, действительно ли это оптимизировать? Я имею в виду, будет ли база данных mongo выполнять два запроса? Серверная часть? клиентская часть? (mini mongo then)
Возможно ли использовать предыдущий результат во второй функции? Я пробовал с
notificationCount = function(){
this.notifications.length;
....
Но это не сработает, но может быть, метеорит помнит предыдущий результат и использует его? Я, определенно, в своем шаблоне вернул something.find(), чтобы иметь курсор, а затем возвращать другую переменную, например: count или фильтровать ее с полями или другими материалами, поэтому я перехожу к этому вопросу.
Любой эксперт, чтобы объяснить мне? Спасибо большое сообщество метеоров :)!
Из документации Монго: [Count] (http://docs.mongodb.org/manual/reference/method/cursor.count/#cursor.count) не выполняет запрос, а вместо этого подсчитывает результаты, которые будут возвращены запросом. – solarc