$jokes = $collection->find(); 
  Как преобразовать $jokes в массив? 
  Вы можете использовать функцию iterator_to_array PHP, как показано в примере 1 документов MongoCursor : 
 $jokes = $collection->find(); $jokesArray = iterator_to_array($jokes); 
В качестве примечания к ответу Криса:
array iterator_to_array (Traversable $ iterator [, bool $ use_keys = true])
Обратите внимание на необязательный второй параметр, если для него установлено значение true (по умолчанию), последний массив будет индексироваться с использованием поля «_id» из каждого документа.
Если вы применили сортировку в запросе mongo, окончательный массив может быть не таким, как вы ожидали, что означает, что порядок сортировки не будет сохранен (если вы не установите параметр $ use_keys в false )
  iterator_to_array() заставляет драйвер загружать все результаты в память, поэтому не делайте этого для наборов результатов, которые больше памяти!  использовать это 
 $jokes = $collection->find(); foreach ($jokes as $joke) { var_dump($joke); } 
намного проще:
 findeOne()->getArrayCopy(); 
как упоминалось ранее: будьте осторожны с загрузкой больших результирующих наборов и преобразованием их в массив
вы также можете настроить свои предпочтения с помощью опции typeMap
 'typeMap' =>[ 'document' => 'array', 'root' => 'array' ] 
find () в основном возвращает курсор MongoDB http://www.php.net/manual/en/mongocollection.find.php
это должно работать на ваш случай
 $cursor = $collection->find(); foreach($cursor as $jokes) { print_r($jokes); } 
  в случае, если кто-то пришел сюда, вы также можете использовать метод toArray . 
(mongodb> = 1.0.0)
MongoDB \ Driver \ Cursor :: toArray – возвращает массив, содержащий все результаты для этого курсора
 $jokes = $collection->find()->toArray(); 
или :
 $jokes = $collection->find(); $jokesArray = $jokes->toArray();