如何在MongoDB的独特命令中使用正则表达式?

时间:2013-01-06 13:39:56

标签: php regex json 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 个答案:

答案 0 :(得分: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"))
    )
);