2017-04-08 25 views
0

我是新的PHP和MongoDB。我想查找所有符合條件的數據。 以下MongoDB的結構:mongodb找到嵌套字段不工作在PHP

'Food' => 
array (size=4) 
    '_id' => 
    object(MongoId)[36] 
     public '$id' => string '587e4a89974711036c97d3e5' (length=24) 
    'CaseId' => string 'c002' (length=4) 
    'Level' => string '4' (length=1) 
    'food' => string 'banana' (length=6) 

我試圖尋找食物對象「食物」的價值。我做了一些研究。我有一些方法來處理。但是,我找不到任何東西。我不知道哪裏錯了?希望有人能教我。 這裏是我的查詢:我研究

$cursor=$collection->find(array("Food.food"=>array('$in'=>["banana"]))); 

$cursor=$collection->find(array('Food'=>array('food'=>"banana"))); 
$cursor=$collection->find(array('Food.food'=>"banana")); 

後,我知道MongoDB的支持點符號。 enter link description here 我還發現一些嵌套的字段方法從 enter link description here 我遵循鏈接2鍵入mongodb羅盤。我可以得到我想要的結果,但當我按照結構進入php。它沒有任何結果。 這些代碼中發生了什麼?我很困惑。謝謝。

+0

第三條註釋行必須工作。你如何檢查查詢的結果? –

+0

在程序中,我沒有在第一個字符中輸入「//」。也許我修改它。 – rcm

回答

0

我找到其他方法來解決這個問題。如果有人遇到像我這樣的案子,你可以嘗試下面的方法。

$query= array( 
'$match'=>array('Food.food'=>'banana') 
); 

$cursor=$collection->aggregate($query); 

您可以輸入$cursor['result']來接收搜索結果。