Привет всем, я использую метод 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; } } }