2015-09-26 35 views
0

嗨,我正在web應用程序的後端&想要從mongodb數據庫中找到文件包含鍵值active_status值設爲1 & 2.與mongodb PHP我很困惑如何在單個查詢中查找兩個參數。查找與運算符在PHP

我的查詢是這樣的:

$mongoDb = MongoDbConnector::getCollection("endusers"); 
$endUserData = $mongoDb->find(array('active_status' => 1, '$and' => array('active_status' => 2))); 

我要取它的active_status應該是1 & 2.上述查詢犯規似乎工作的用戶。什麼是正確的呢?

非常感謝您的快速回復。

回答

1

您有$and錯誤的方法。兩個參數需要包括:

$endUserData = $mongoDb->find(array(
    '$and' => array( 
     array('active_status' => 1) 
     array('active_status' => 2) 
    ) 
)); 

而且因爲這隻會令意義上的數組元素中尋找這兩個元素的時候,那麼你就應該使用$all,這是更短的語法:

$endUserData = $mongoDb->find(array(
    'active_status' => array('$all' => array(1,2)) 
)); 

我要補充一點,除非你打算匹配這樣的文件:

{ "active_status" => [1,2] } 

的你實際上並不想$and所有,但而你想$or或更好,但$in對同一領域的多個可能值:

$endUserData = $mongoDb->find(array(
    'active_status' => array('$in' => array(1,2)) 
)); 

這符合這樣的文件:

{ "active_status": 1 }, 
{ "active_status": 2 }