0

所以我正在学习 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"] ?>

我找不到任何解释。虽然我现在了解它是如何工作的,但我不确定这是否是我在将值添加到集合时犯的错误,或者我是否遗漏了一些东西。谢谢!!

4

2 回答 2

2

这是因为 find 返回一个结果数组(并且每个结果都转换为一个数组)。因此,您有一个结果数组,其中 Mongo ObjectId 作为数组中的键。如果您只想获得一个结果,请使用 findOne。

于 2013-03-07T06:36:38.733 回答
1
$cursor = $collection->find(array('game' => 'Borderlands 2'));
while ($document = $cursor->getNext()){
      echo $document['game'];
}
于 2013-03-07T06:48:55.010 回答