所以我正在学习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"] ?>
我找不到任何解释。虽然我现在明白它是如何工作的,但我不确定这是否是我在将值添加到集合中时犯的错误,或者我是否遗漏了某些内容。谢谢!
答案 0 :(得分:2)
这是因为find返回一个结果数组(并且每个结果都转换为一个数组)。因此,您有一个结果数组,其中Mongo ObjectId作为数组中的键。如果您想获得一个结果,请使用findOne。
答案 1 :(得分:1)
$cursor = $collection->find(array('game' => 'Borderlands 2'));
while ($document = $cursor->getNext()){
echo $document['game'];
}