2016-02-28 77 views
1

这是php代码。使用php显示从mongodb检索的数据中的特定“键值”对

<?php 
// connect to mongodb 
$m = new MongoClient(); 

// select a database 
$db = $m->Example; 

$collection="User"; 
$Query = array("Username"=>$username); 
$j = $db->$collection->find($Query); 

foreach ($j as $k) { 
    echo"<pre>";var_dump($k); echo"</pre>"; 
} 

foreach($j as $k => $v) { 

     echo $k.'='.$j[$k].'<br>'; 

} 
?> 

在此,将数据在$ j变量中检索的时的var_dump($ k)的使用输出如下:

array(8) { 
    ["_id"]=> 
    object(MongoId)#6 (1) { 
    ["$id"]=> 
    string(24) "56d1cb49097ed3241d000029" 
    } 
    ["Fname"]=> 
    string(4) "Ritu" 
    ["Lname"]=> 
    string(3) "Rad" 
    ["Username"]=> 
    string(4) "riri" 
    ["Password"]=> 
    string(4) "riri" 
    ["Email"]=> 
    string(23) "[email protected]" 
} 

但是,如果试图显示专用密钥值对在下一个foreach循环中会出现以下错误:

Fatal error: Cannot use object of type MongoCursor as array 

如何只显示特定的键及其值? 如:电子邮件[email protected]

回答

0

\MongoCollection::find()结果(您$j)变量是\MongoCursor类,它实现\Iterator的实例 - 它可以让你遍历它,但它不具有键(即不实施\ArrayAccess)。如果你想使用你的结果作为数组你应该叫

$array = iterator_to_array($j); 

现在你可以使用$array,因为它会是普通数组:

echo $array[0]['Email'] 
相关问题