#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 для этого элемента прямо здесь.