Latest web development tutorials

MongoDB를 정규식

정규 표현식 통사 규칙 일치 스트링의 일련의 라인에 단일 문자열의 사용을 설명하기 위해 사용된다.

대부분의 프로그래밍 언어는 문자열 작업에 정규 표현식의 사용을 지원합니다.

MongoDB를 정규 표현식과 일치하는 문자열을 설정 $ 정규식 연산자를 사용합니다.

MongoDB를 정규 표현식 언어로 PCRE (펄 호환 정규 표현식)를 사용합니다.

전체 텍스트 검색과는 달리, 우리는 어떤 구성을 할 필요가 없습니다 정규 표현식을 사용합니다.

게시물의 다음 문서 구조 세트를 고려, 문서는 문서와 라벨의 내용을 포함 :

{
   "post_text": "enjoy the mongodb articles on tutorialspoint",
   "tags": [
      "mongodb",
      "tutorialspoint"
   ]
}

정규 표현식을 사용하여

다음 명령은 문서 w3cschool.cc 문자열을 포함 찾을 정규식을 사용 :

>db.posts.find({post_text:{$regex:"w3cschool.cc"}})

위의 쿼리도 같이 쓸 수있다 :

>db.posts.find({post_text:/w3cschool.cc/})

대소 문자를 구별하지 정규 표현식

당신은 대소 문자를 구분 검색해야하는 경우, 우리는 $ 난으로 $ 옵션을 설정할 수 있습니다.

다음 명령은 대소 문자를 구분 문자열 w3cschool.cc를 찾을 수 있습니다 :

>db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})

컬렉션은 대소 문자를 구분하지 않습니다 문자열 w3cschool.cc를 포함하는 모든 데이터를 반환합니다 :

{
   "_id" : ObjectId("53493d37d852429c10000004"),
   "post_text" : "hey! this is my post on  W3Cschool.cc", 
   "tags" : [ "tutorialspoint" ]
} 

정규식을 사용하여 배열 요소

우리는 또한 콘텐츠를 찾을 배열 필드에 정규 표현식을 사용할 수 있습니다. 당신은 다음과 같은 코드를 사용할 수 있습니다 레이블이 시작 부분에 데이터 (튜토리얼 또는 자습서 또는 tutorialpoint 또는 tutorialphp) 자습서를 포함 찾을 필요가 경우에, 라벨의 실현에 유용하다 :

>db.posts.find({tags:{$regex:"tutorial"}})

정규 표현식 쿼리를 최적화

  • 문서 인덱스 필드가 설정된 경우, 인덱스의 사용은 빠르게 조회 모든 데이터를 찾기 위해 매칭 정규식 비교.

  • 정규 표현식은 접두사 표현의 경우, 일치하는 모든 데이터가 시작하는 접두사 문자열을 지정됩니다. 예를 들어 정규 표현식 ^ 혀 경우, 혀 쿼리 문자열의 시작으로 볼 것이다.

주목해야 할 두 점은이 정규 표현식의 사용이있다 :

변수를 사용하여 정규 표현식. 직접 문자열 연결 표현에 전달 될 수 없습니다 후 변환 문자열 평가의 조합을 사용하십시오. 그렇지 않으면이 에러 메시지는 없지만, 그 결과, 비어! 다음 예는 다음과 같다 :

var name=eval("/" + 变量值key +"/i"); 

다음은 퍼지 쿼리 제목 키워드는 대소 문자를 구분하지 않습니다이 포함되어 있습니다 :

title:eval("/"+title+"/i")    // 等同于 title:{$regex:title,$Option:"$i"}