Php mongoDB aggregate () возвращает MongoDB \ Driver \ Cursor Object вместо результата

Я работаю над переходом на новый драйвер php от mongodb, на данный момент я понятия не имею, в чем именно проблема, запрос отлично работает со старым драйвером, на самом деле я не получаю запроса или ошибки php. Print_r возвращает serult совокупной fn следующим образом версия php: 7.1.18, Zend Engine: v3.1.0, монго: v3.4.15

> MongoDB\Driver\Cursor Object (
>     [database] => demoDb
>     [collection] => 
>     [query] => 
>     [command] => MongoDB\Driver\Command Object
>         (
>             [command] => stdClass Object
>                 (
>                     [aggregate] => app_button
>                     [pipeline] => Array
>                         (
>                             [0] => stdClass Object
>                                 (
>                                     [$match] => stdClass Object
>                                         (
>                                             [location] => stdClass Object
>                                                 (
>                                                     [$in] => Array
>                                                         (
>                                                             [0] => 2978
>                                                             [1] => 2979
>                                                             [2] => 2980
>                                                             [3] => 2981
>                                                             [4] => 3060
>                                                             [5] => 3061
>                                                             [6] => 3062
>                                                             [7] => 3063
>                                                             [8] => 3064
>                                                             [9] => 3065
>                                                             [10] => 3066
>                                                         
>                                                         )
> 
>                                                 )
> 
>                                             [language] => stdClass Object
>                                                 (
>                                                     [$in] => Array
>                                                         (
>                                                             [0] => multiselect-all
>                                                             [1] => en
>                                                             [2] => gr
>                                                             [3] => zh
>                                                             [4] => vi
>                                                         )
> 
>                                                 )
> 
>                                             [$or] => Array
>                                                 (
>                                                     [0] => stdClass Object
>                                                         (
>                                                             [hittime] => stdClass Object
>                                                                 (
>                                                                     [$regex] => 2018-07-
>                                                                 )
> 
>                                                         )
> 
>                                                 )
> 
>                                         )
> 
>                                 )
> 
>                             [1] => stdClass Object
>                                 (
>                                     [$group] => stdClass Object
>                                         (
>                                             [_id] => $action
>                                             [count] => stdClass Object
>                                                 (
>                                                     [$sum] => 1
>                                                 )
> 
>                                             [totalvalue] => stdClass Object
>                                                 (
>                                                     [$sum] => $total_value
>                                                 )
> 
>                                             [optionvalue] => stdClass Object
>                                                 (
>                                                     [$sum] => $option_value
>                                                 )
> 
>                                             [recvalue] => stdClass Object
>                                                 (
>                                                     [$sum] => $rec_value
>                                                 )
> 
>                                             [data_used] => stdClass Object
>                                                 (
>                                                     [$sum] => $data_used
>                                                 )
> 
>                                         )
> 
>                                 )
> 
>                             [2] => stdClass Object
>                                 (
>                                     [$sort] => stdClass Object
>                                         (
>                                             [_id] => 1
>                                         )
> 
>                                 )
> 
>                         )
> 
>                     [allowDiskUse] => 
>                     [cursor] => stdClass Object
>                         (
>                         )
> 
>                 )
> 
>         )
> 
>     [readPreference] => MongoDB\Driver\ReadPreference Object
>         (
>             [mode] => primary
>         )
> 
>     [session] => 
>     [isDead] => 
>     [currentIndex] => 0
>     [currentDocument] => 
>     [server] => MongoDB\Driver\Server Object
>         (
>             [host] => 127.0.0.1
>             [port] => 27017
>             [type] => 1
>             [is_primary] => 
>             [is_secondary] => 
>             [is_arbiter] => 
>             [is_hidden] => 
>             [is_passive] => 
>             [last_is_master] => Array
>                 (
>                     [ismaster] => 1
>                     [maxBsonObjectSize] => 16777216
>                     [maxMessageSizeBytes] => 48000000
>                     [maxWriteBatchSize] => 1000
>                     [localTime] => MongoDB\BSON\UTCDateTime Object
>                         (
>                             [milliseconds] => 1532060099520
>                         )
> 
>                     [maxWireVersion] => 5
>                     [minWireVersion] => 0
>                     [readOnly] => 
>                     [ok] => 1
>                 )
> 
>             [round_trip_time] => 0
>         )
> 
> )

код

$collection = array();
        $client = new MongoDB\Client;
        $h = $client->selectDatabase('demoDb')->selectCollection($params['tablename']);
 $aggregateArr = array(
                array(
                    '$match' => array(
                        "location" => array('$in' => $params['locations'],
                        ),
                        "language" => array('$in' => $params['languages'],
                        ),
                        '$or' => $orarray,
                    ),
                ),
                array(
                    '$group' => array(
                        '_id' => $params['groupid'],
                        'count' => array('$sum' => 1),
                        'totalvalue' => array('$sum' => '$total_value'),
                        'optionvalue' => array('$sum' => '$option_value'),
                        'recvalue' => array('$sum' => '$rec_value'),
                        'data_used' => array('$sum' => '$data_used'),
                    ),
                ));
$collection = $h->aggregate($aggregateArr);
            print_r($collection);
            exit;
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 904
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Метод aggregate возвращает Cursor, дополнительную информацию см. В документация.

Если вам нужно использовать результат как array, вы можете использовать iterator_to_array, например:

$resultAsArray = iterator_to_array( $h->aggregate($aggregateArr), false );

Теперь $resultAsArray - это array.

Это работает, спасибо вам большое, вы действительно спасатель !!.

Aswin TK 20.07.2018 12:43

Другие вопросы по теме