2012-01-16 2 views
0

각 문서는 "이름, 도시 및 지점"으로 구성되며 "이름, 도시 및 지점"의 결합 버전 인 "키워드"도 포함됩니다.mongodb 데이터베이스 검색 정규식

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

     if($result){ 
      return $result; 
     } 

     return false; 
    } 

문제는 사용자의 입력이 "grandcaffee 런던"이었다 때 각 단어를 검색 할 때 또는 사용자를하지 않습니다이다 :

지금 정규 표현식을 필요

, 이것은 내가 가진 무엇 삽입물 : "Cinema New York".

읽어 주셔서 감사합니다.

답변

1

이 (일치 "grandcaffee"OR "런던")

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

하거나 ("grandcaffee"BOTH 문서를 일치하고 "런던")

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

음을 어떻게 할 수있는 작업을 수행 할 수 있습니다 PHP 작업에서 이것을 얻으시겠습니까? – randomKek

+0

죄송합니다. Ruby를 코딩합니다 :-) –

+0

$ all, tyvm으로 작업 해 주셔서 감사합니다. :) – randomKek