MongoDB Count с лимитом

Я построил отчет, который выбирает разбитые на страницы наборы результатов, используя конвейер агрегации MongoDB, например:

$pipeline = array(
array('$match' => $this->_queryOptions),
array('$skip' => $this->_startingIndex),
array('$group' => array(
"_id" => array(
'username' => '$username',
'prefix' => '$prefix',
'claimNumber' => '$claimNumber'
),
"viewCount" => array('$sum' => 1),
"timestamp" => array('$max' => '$timestamp'),
"companyNumber" => array('$addToSet' => '$companyNumber'),
"policyNumber" => array('$addToSet' => '$policyNumber')
)
),
array('$sort' => array($sortBy => $this->_sortDir)),
array('$limit' => $this->_limit)
);

$results = $this->_collection->aggregate($pipeline);

Это работает, как ожидалось. Тем не менее, я борюсь с получением общего количества (только для целей отображения нумерации страниц) … как если бы я должен был выполнить запрос без ограничения и сделать count($results['result'])

Кто-нибудь знает эффективный способ сделать это, учитывая, что метод aggregate () возвращает необработанные данные, а не объект-курсор?

Спасибо заранее за любые отзывы!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector