Найти все документы, в которых существует один или несколько вложенных ключей - PullRequest
2 голосов
/ 13 мая 2011

Я пытаюсь выяснить, как я могу набрать все документы, где существует один или несколько вложенных ключей.Так что возьмите следующую коллекцию

[{_id = "setting1", name = "setting1Name", description = "Это описание", values ​​= {us = "good", uk = "great"

                }
        ,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" = {"$ exist" = "true"}});

но что было бы лучшим способом расширить это, так что, если "us" или "lu" существуют, верните?

Спасибо

1 Ответ

0 голосов
/ 13 мая 2011

Попробуйте использовать оператор $ или. Я привык к синтаксису php, но вы поймете идею.

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

$query = $collection->find($where);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...