Как получить количество результатов курсора с помощью PHP-расширения MongoDB

mongo Расширение PHP не рекомендуется в пользу mongodb расширение. Это расширение используется вместе с mongo-php-library.

В старом расширении можно получить счетчик результатов из курсора, используя MongoCursor :: Количество (). Тем не менее, новый курсор MongoDB \ Driver \ Cursor не имеет такого метода. Каков новый способ получения количества результатов после выполнения запроса к MongoDB?

1

Решение

Вы можете сделать это так

Model::count(array($whereClause));

$whereClause будут ваши критерии поиска в основном.

В противном случае, если ваш запрос возвращает массив, вы можете сделать

$data = Model::find(array($whereClause));
$total = count($data);
1

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

Я использую этот код.

$query = ["hello" => "world"];
$command = new MongoDB\Driver\Command(["count" => "collection", "query" => $query]);
try {
$result = $mongo->executeCommand("mydb", $command);
$res = current($result->toArray());
$count = $res->n;
echo $count;
} catch (MongoDB\Driver\Exception\Exception $e) {
echo $e->getMessage(), "\n";
}
3

По вопросам рекламы [email protected]