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 hereenter link description here 내가 mongodb 나침반 입력에 링크 2 다음 중첩 필드 방법을 찾으십시오. 내가 원하는 결과를 얻을 수 있지만 PHP로 입력 구조를 따라. 어떤 결과도 없습니다. 이 코드에서 어떤 일이 발생합니까 ?? 나는 혼란 스럽다. 고맙습니다.

+0

세 번째 주석 행이 작동해야합니다. 쿼리 결과를 어떻게 확인합니까? –

+0

프로그램에서 첫 번째 문자에 "//"을 입력하지 않았습니다. 어쩌면 나는 그것을 수정한다. – rcm

답변

0

이 문제를 해결하는 다른 방법을 찾았습니다. 누군가 나 같은이 사건을 만난다면, 당신은 아래의 방법을 시도해 볼 수 있습니다.

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

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

검색 결과를 수신하려면 $cursor['result']을 입력 할 수 있습니다.

관련 문제