2017-04-08 1 views
0

私はphpとmongodbで新しいです。私は、PHPの条件に一致するすべてのデータを検索したい。 次の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 また、私はいくつかのgetフィールドメソッドを得ることがわかります enter link description here 私はmongodbコンパスの入力へのリンク2に従ってください。私は私が望む結果を得ることができますが、私はPHPに入力する構造に従ってください。それは何の結果もありません。 これらのコードではどうなりますか?私は混乱しています。ありがとうございました。

+0

3番目のコメント行は機能する必要があります。どのようにクエリの結果をチェックしますか? –

+0

プログラムでは、最初の文字に "//"を入力していません。たぶん私はそれを変更します。 – rcm

答えて

0

この問題を解決する他の方法があります。誰かが私のようにこのケースを満たしている場合は、以下の方法で試すことができます。

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

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

あなたは、検索結果を受け取るために$cursor['result']を入力することができます。

関連する問題