mongodb数据库搜索正则表达式

时间:2012-01-16 13:57:43

标签: regex mongodb

每个文件都包含“名称,城市和分支”,然后它们还包含“关键字”,这是“名称,城市和分支”的组合版本。

我现在需要一个正则表达式,这就是我得到的:

    public function searchLocation($keyword){
        $result = $this->locations->find(array('keywords' => new MongoRegex('/^' . strtolower($keyword) . '/')));

        if($result){
            return $result;
        }

        return false;
    }

问题是,当用户输入为“grandcaffee london”时,它不会搜索每个单词,或者当用户插入“Cinema New York”时。

感谢阅读。

1 个答案:

答案 0 :(得分:1)

你可以这样做(匹配“grandcaffee”或“london”)

db.locations.find({keywords: {$in: [/grandcaffee/, /london/]}});

或者这个(与“grandcaffee”和“london”匹配的文件)

db.locations.find({keywords: {$all: [/grandcaffee/, /london/]}});