查找存在一个或多个嵌套键的所有文档

时间:2011-05-12 20:24:07

标签: mongodb

我试图找出如何键入存在一个或多个嵌套键的所有文档。所以采取以下集合

[         {_id =“setting1”             ,NAME = “setting1Name”             ,description =“这是描述”             ,values = {us =“good”                             ,UK = “大”

                }
        ,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”存在,那么扩展它的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

尝试使用'$或'运算符。我习惯了php语法,但你会明白这个想法。

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

$query = $collection->find($where);