2012-01-16 19 views
0

每個文檔由「名稱,城市和分支」組成,那麼它們也包含「關鍵字」,它是「名稱,城市和分支」的組合版本。mongodb數據庫搜索正則表達式

我現在需要一個正則表達式,這是我的了:

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

     if($result){ 
      return $result; 
     } 

     return false; 
    } 

問題是,當用戶輸入的是「grandcaffee倫敦」它不會搜索每個字,或當用戶插入:「紐約電影院」。

感謝您的閱讀。

回答

1

你可以這樣做(匹配 「grandcaffee」 OR 「倫敦」)

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

或本(匹配與 「分grandcaffee」 文件和 「倫敦」)

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

嗯,我怎麼能得到這個在PHP工作? – randomKek 2012-01-16 14:55:08

+0

對不起,不知道,我在Ruby代碼:-) – 2012-01-16 14:55:43

+0

感謝您的幫助得到它與$ all,tyvm :)工作 – randomKek 2012-01-16 15:24:27