Как преобразовать MongoDB \ MapReduceResult в массив? - PullRequest
0 голосов
/ 24 января 2020

Я использую MongoDb php -библиотеку в своем коде. Мне нравится, как это работает. Теперь я могу получить MapReduceResult следующим образом:

    $map = new MongoDB\BSON\Javascript('function() { 
    emit( { 
      incident: this.guid, 
    },{ 
      data: [this]
    });
}');
$reduce = new MongoDB\BSON\Javascript('function(key, values) {
    var out = [];
    values.forEach(function(d){
        Array.prototype.push.apply(out, d.data);
    });
    return { data: out };
}');
$out = ['inline' => 1];
$res = $collection->mapReduce($map, $reduce, $out);

Я пытался извлечь из него массив - $res->toArray();, но в MapReduceResult такого метода нет. Итак, как я могу преобразовать его в полезный массив? Я попробовал это так:

$it = $res->getIterator();
var_dump(iterator_to_array($it, true));

Но я получаю массив BSONDocument s, тогда как мне нужен простой массив PHP, чтобы вернуть его клиенту в виде JSON .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...