2013-01-06 37 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

它必须解决。 –