Я использую 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 .