2011-05-12 73 views
2

我想知道如何将所有文档键入一个或多个嵌套密钥存在的位置。因此,采取以下收集查找存在一个或多个嵌套密钥的所有文档

[ {_id = “设置1” ,NAME = “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" 
    }] 

所以我想找到的文件,其中在价值观的关键(图)‘我们’,‘禄’。我知道如何做到这一点

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

但是,如果存在“我们”或“lu”存在,那么最好的方法是什么?

谢谢

回答

0

尝试使用'$或'运算符。我习惯于PHP的语法,但你会明白。

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

$query = $collection->find($where); 
相关问题