Mongodb php嵌套$和$或

时间:2015-09-06 08:46:20

标签: php mongodb nested

我真的有一个问题需要了解如何在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 )
        )
    );

但这里也一样。我已经搜索了很多关于嵌套语句的内容,但我认为我对此有很大的误解。任何人都可以帮我这个例子吗?

非常感谢! 塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

嗯。不知道我之前做了什么,但它现在似乎有效。对于所有搜索,这是处理它的正确方法:

$arr_Search = array(
        '$or' => array(
            array('fromid' => $fromid, 'toid' => $toid ),
            array('fromid' => $toid, 'toid' => $fromid )
        )
    );

谢谢,塞巴斯蒂安