2011-05-12 7 views
2

하나 이상의 중첩 키가있는 모든 문서를 어떻게 키 수 있는지 알아 내려고합니다. 그래서하나 이상의 중첩 키가있는 모든 문서 찾기

[ {_id = "설정 1" , 이름 = "setting1Name" , 설명 = "이것은 설명" , 값 = {미국 = "좋은", 영국 = "큰 다음를들을 "

   } 
     ,defaultvalues={ us ="good" 
         ,uk="great" 
         ,sp="bueno" 
        } 
     ,position = "1" 
     ,group="group1" 
    }, 
    {_id = "setting2" 
     ,name="setting2Name" 
     ,description="This is the description" 
     ,values = {  us ="good" 
        ,lu="great" 
       } 
     ,defaultvalues={ us ="good" 
         ,uk="great" 
         ,sp="bueno" 
        } 
     ,position = "2" 
     ,group="group2" 
    }] 

그래서 [ 'us', 'lu']에 키가있는 문서를 찾고 싶습니다. 나는 이것을하는 방법을 안다.

query = mongo.collection ("settings"). find ({ "values.us"= { "$ exists"= "true"}}});

하지만 "us"또는 "lu"가 반환되는 경우이를 확장하는 가장 좋은 방법은 무엇입니까?

감사합니다.

답변

0

'$ 또는'연산자를 사용해보십시오. 필자는 PHP 구문에 익숙하지만 아이디어를 얻을 수 있습니다.

$where = array(
    '$or' => array(
     array('values.us' => array('$exists' => TRUE)), 
     array('values.lu' => array('$exists' => TRUE)) 
    ) 
); 

$query = $collection->find($where); 
관련 문제