每个文件都包含“名称,城市和分支”,然后它们还包含“关键字”,这是“名称,城市和分支”的组合版本。
我现在需要一个正则表达式,这就是我得到的:
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”时。
感谢阅读。
答案 0 :(得分:1)
你可以这样做(匹配“grandcaffee”或“london”)
db.locations.find({keywords: {$in: [/grandcaffee/, /london/]}});
或者这个(与“grandcaffee”和“london”匹配的文件)
db.locations.find({keywords: {$all: [/grandcaffee/, /london/]}});