С учетом отфильтрованной и разбитой на страницы публикации метеора, как мне получить общее количество с примененной отфильтрованной информацией?
Код клиента:
import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { Track } from 'meteor/tracker';
import { Posts } from '/imports/api/posts/posts.js';
import './posts.html';
Template.App_posts.onCreated(function() {
this.subscribe('posts.all', new Date(), 0);
Tracker.autorun(() => {
let postCount = Posts.find({}).count();
console.log(postCount); // 10
});
});
Код сервера:
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
import { Posts } from '../posts.js';
const postsPerPage = 10;
Meteor.publish('posts.all', function(date, page = 0) {
if (!Meteor.userId()) throw new Meteor.Error('Unauthorised');
check(date, Date);
check(page, Number);
let query = {
userId: Meteor.userId()
};
let options = {};
if (date) {
query.createdAt = date;
}
options.limit = postsPerPage;
options.skip = page * postsPerPage;
let cursor = Posts.find(query, options);
console.log(cursor.count()); // 100
return cursor;
});
Возвращает ожидаемые сообщения с указанием даты и страницы, но проблема заключается в том, что общее количество отфильтрованных сообщений известно.
При условии, что имеется 1000 сообщений, 100 из них применимы к этой дате и пользователю.Как получить счет 100, если за раз возвращаются только 10?