2013-01-06 69 views
1

MongoDB獨特的命令非常適合我試圖實現的目標,它爲集合中的特定鍵獲取一組獨特的結果。如何使用正則表達式與MongoDB的獨特命令?

我讀過它支持正則表達式,但我不知道如何將它合併到查詢中。

所以這個:

db.runCommand({distinct:'cars',key:'car_company.name'}) 

將返回

{ 
    "values" : [ 
     "Chevy", 
     "Porche", 
     "Chevrolet", 
     "BMW", 
     "Mercedes-Benz", 
    ], 
    "stats" : { 
     "n" : 5, 
     "nscanned" : 5, 
     "nscannedObjects" : 5, 
     "timems" : 0, 
     "cursor" : "BasicCursor" 
    }, 
    "ok" : 1 
} 

我將如何建立這個查詢,以便它只返回匹配的說,「CHEV」正則表達式的獨特價值?

回答

1

php您可以通過

$cars = $db->command(
    array(
     "distinct" => "car_collection", 
     "key" => "car_company.name", // or what so ever key you wish to be distinct 
     "query" => array("car_company.name" => new MongoRegex("/^chev/i")) 
    ) 
); 
+0

對不起實現這一點,這是行不通的。 Print_r($ cars)返回: Array([values] => Array()[stats] => Array([n] => 0 [nscanned] => 5 [nscannedObjects] => 5 [timems] => 0 [cursor] => BasicCursor)[ok] => 1) – styke

+0

你可以提供一些你嘗試過的代碼。其實我不使用php。我提到了文檔並提供了我的解決方案。我遵循http://php.net/manual/en/class.mongoregex.php和http://php.net/manual/en/mongodb.command.php –

+0

它必須解決。 –