2013-03-07 2 views
0

Итак, я изучаю MongoDB, и все работает нормально, пока я не захочу запросить и обнаружил, что он возвращает массив, который не работает так, как я привык. Возьмем, к примеру:Результат неожиданного запроса MongoDB

$cursor = $collection->find(array('game' => 'Borderlands 2')); 

$array = iterator_to_array($cursor); 

До сих пор так хорошо, но я хотел бы получить одно значение для добавления динамически на страницу:

The game is: <?php echo $array['game'] ?> 

И только ошибки следовали. Я пытался тонны вещей, но потом я var_dump его и обнаружил, что массив содержится под массив ID/индекс, так что это сработало:

<?php echo $array["5138225097777c4014000001"]["game"] ?> 

Я не смог найти каких-либо объяснений вокруг. Хотя теперь я понимаю, как это работает, я не уверен, что это ошибка, которую я допустил при добавлении значений в коллекцию или если я что-то упустил. Благодаря!!

ответ

2

Это потому, что find возвращает массив результатов (и каждый результат преобразуется в массив). Следовательно, у вас есть массив результатов с Mongo ObjectId в качестве ключа в массиве. Используйте findOne, если вы хотите получить только один результат.

1
$cursor = $collection->find(array('game' => 'Borderlands 2')); 
while ($document = $cursor->getNext()){ 
     echo $document['game']; 
} 
Смежные вопросы