2013-03-07 99 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']; 
}