MongoDB: ObjectId to String

Привет всем, я использую метод MongoDB find () следующим образом:

$cursor = $collection->find(); foreach($cursor as $doc) { // do something.... } 

это нормально, но мое свойство _id автогенерируется, поэтому, когда я использую код выше $ doc [_id], есть Object, но мне нужна строка.

Как я могу преобразовать его в строку автоматически. Не так:

 foreach($cursor as $doc) { $doc['_id'] = (string)$doc['_id']; } 

Как правило, обработка mongoid json_encode была ошибкой в ​​драйвере php . Он должен быть исправлен с версии 1.0.11.

Чтобы автоматизировать преобразование ObjectId в строку из любого результата из MongoDB-драйвера, я использую эту функцию:

 function convertMongoIds(array &$array){ foreach ($array as &$element){ if (is_array($element)){ convertMongoIds($element); }else if (is_object($element) && get_class($element) == "MongoId"){ $element = (string) $element; } } }