2016-02-28 84 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'] 
相關問題