Mongodb PHP вложенный $ и $ или
У меня действительно есть проблема, чтобы понять, как создавать вложенные и / или операторы в массиве запросов PHP MongoDB. Для простоты понимания вот что я написал бы в SQL:
SELECT * FROM message where (fromid = '$myfromid' AND toid = '$mytoid') OR (fromid = '$mytoid' AND toid = '$myfromid')
У меня есть MongoCollection, уже установленный для коллекции сообщений и создаю курсор с этим условным массивом:
$arr_Search = array(
'$or' => array(
array( '$and' => array(
array('fromid' => $myfromid, 'toid' => $mytoid )
) ),
array( '$and' => array(
array('fromid' => $mytoid, 'toid' => $myfromid )
) )
)
);
Это работает, но не так, как ожидалось. Он дает мне все наборы данных, где только "fromid" - это $myfromid. Я попробовал это с этим:
$arr_Search = array(
'$or' => array(
array('fromid' => $myfromid, 'toid' => $mytoid ),
array('fromid' => $mytoid, 'toid' => $myfromid )
)
);
Но то же самое здесь. Я много искал о вложенных утверждениях, но мне кажется, что я неправильно понял это. Может ли кто-нибудь помочь мне с этим примером?
Большое спасибо! Себастьян
1 ответ
Хм. Не знаю, что я сделал раньше, но, похоже, сейчас работает. Для всех ищущих об этом, это правильный способ справиться с этим:
$arr_Search = array(
'$or' => array(
array('fromid' => $fromid, 'toid' => $toid ),
array('fromid' => $toid, 'toid' => $fromid )
)
);
Спасибо Себастьян