我真的有一个问题需要了解如何在PHP MongoDB查询数组中构建嵌套和/或语句。为了简单理解,这就是我在SQL中编写的内容:
SELECT * FROM message where (fromid = '$myfromid' AND toid = '$mytoid') OR (fromid = '$mytoid' AND toid = '$myfromid')
我已将MongoCollection设置为message-collection并使用此条件数组构建游标:
$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 )
)
);
但这里也一样。我已经搜索了很多关于嵌套语句的内容,但我认为我对此有很大的误解。任何人都可以帮我这个例子吗?
非常感谢! 塞巴斯蒂安
答案 0 :(得分:0)
嗯。不知道我之前做了什么,但它现在似乎有效。对于所有搜索,这是处理它的正确方法:
$arr_Search = array(
'$or' => array(
array('fromid' => $fromid, 'toid' => $toid ),
array('fromid' => $toid, 'toid' => $fromid )
)
);
谢谢,塞巴斯蒂安