mongodb — поиск в подмассиве, PHP

#php #arrays #mongodb

#php #массивы #mongodb

Вопрос:

я начал с mongodb и поиграл со случайными данными о температуре следующим образом:

 'weather' => array(
                    'Air' => array(
                        'Jan' => 11,
                        'Feb' => 20,
                        'Mar' => 24,
                        'Jun' => 28,
                        'Jul' => 30
                    )
                ),
  

Теперь мой вопрос:
Как я могу запросить массив Air?

Я знаю, что могу сделать что-то вроде:

 $query = array('weather.Air.Jan' => 11);
  

Работает нормально…

Но как я могу выполнить поиск во всем массиве Air:

 $query = array('weather.Air.$' => 40);
  

Этот запрос не работает…
Может кто-нибудь мне помочь

Ответ №1:

К сожалению, запрос, который вы ищете, не существует.

Как написано, вы запрашиваете «погоду.Air, где ключ в объекте JSON содержит значение 40».

MongoDB имеет возможность «детализировать» массивы. Однако, когда дело доходит до подобъектов, вы должны напрямую обращаться к ключам. Не существует оператора, который предоставляет метод «поиск по всем ключам». Существует невыполненный запрос JIRA для этого элемента прямо здесь.