[MONGODB] 필드가 문자열을 포함하는 경우 확인
MONGODB필드가 문자열을 포함하는 경우 확인
필드의 값이 특정 문자열을 포함하는 경우 나, 나를 확인 할 수있는 연산자를 찾고 있어요.
뭔가 같은 :
db.users.findOne({$contains:{"username":"son"}})
그게 가능합니까?
해결법
-
==============================
1.다음과 같은 코드로 할 수 있습니다.
다음과 같은 코드로 할 수 있습니다.
db.users.findOne({"username" : {$regex : ".*son.*"}});
-
==============================
2.몽고 쉘 지원 정규식으로, 그 완전히 가능합니다.
몽고 쉘 지원 정규식으로, 그 완전히 가능합니다.
db.users.findOne({"username" : /.*son.*/});
우리는 대소 문자를 구분하는 쿼리를 원하는 경우 아래 그림처럼, 우리는, "I"옵션을 사용할 수 있습니다 :
db.users.findOne({"username" : /.*son.*/i});
참조 : http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
-
==============================
3.https://docs.mongodb.com/manual/reference/sql-comparison/
https://docs.mongodb.com/manual/reference/sql-comparison/
http://php.net/manual/en/mongo.sqltomongo.php
MySQL의
SELECT * FROM users WHERE username LIKE "%Son%"
MongoDB를
db.users.find({username:/Son/})
-
==============================
4.버전 2.4의, 당신은 검색 쿼리에 대한 $ 텍스트 연산자를 사용하는 필드 (들)에 텍스트 인덱스를 만들 수 있습니다.
버전 2.4의, 당신은 검색 쿼리에 대한 $ 텍스트 연산자를 사용하는 필드 (들)에 텍스트 인덱스를 만들 수 있습니다.
첫째, 인덱스를 만들 :
db.users.createIndex ({ "이름": "텍스트"})
그런 다음, 검색하기 :
db.users.find ({$ 텍스트 : {$ 검색 : "아들"}})
벤치 마크 (~ 150K 문서) :
노트:
-
==============================
5.이 검색 엔진의 첫 히트 곡 중 하나이며, 위의 어느 것도 MongoDB를 3.x를 위해 작동하는 것 같다 없기 때문에, 여기에이 작업을 수행 검색 정규식 하나입니다 :
이 검색 엔진의 첫 히트 곡 중 하나이며, 위의 어느 것도 MongoDB를 3.x를 위해 작동하는 것 같다 없기 때문에, 여기에이 작업을 수행 검색 정규식 하나입니다 :
db.users.find( { 'name' : { '$regex' : yourvalue, '$options' : 'i' } } )
필요가 별도의 인덱스 또는 모두 등을 만들 수 없습니다.
-
==============================
6.이 작업을 수행하는 간단한 방법
이 작업을 수행하는 간단한 방법
당신이 원하는 경우 쿼리는 대소 문자를 구별 할 수
db.getCollection("users").find({'username':/Son/})
당신이 원하는 경우 쿼리는 대소 문자를 구분합니다
db.getCollection("users").find({'username':/Son/i})
-
==============================
7.다음은 파이썬을 통해 MongoDB를 연결할 경우해야 할 일이다
다음은 파이썬을 통해 MongoDB를 연결할 경우해야 할 일이다
db.users.find({"username": {'$regex' : '.*' + 'Son' + '.*'}})
당신은 또한 '아들'때문에 문자열 연결 대신 변수 이름을 사용할 수 있습니다.
-
==============================
8.정규식 매치에서 HTML 태그를 무시하는 방법 :
정규식 매치에서 HTML 태그를 무시하는 방법 :
var text = '<p>The <b>tiger</b> (<i>Panthera tigris</i>) is the largest <a href="/wiki/Felidae" title="Felidae">cat</a> <a href="/wiki/Species" title="Species">species</a>, most recognizable for its pattern of dark vertical stripes on reddish-orange fur with a lighter underside. The species is classified in the genus <i><a href="/wiki/Panthera" title="Panthera">Panthera</a></i> with the <a href="/wiki/Lion" title="Lion">lion</a>, <a href="/wiki/Leopard" title="Leopard">leopard</a>, <a href="/wiki/Jaguar" title="Jaguar">jaguar</a>, and <a href="/wiki/Snow_leopard" title="Snow leopard">snow leopard</a>. It is an <a href="/wiki/Apex_predator" title="Apex predator">apex predator</a>, primarily preying on <a href="/wiki/Ungulate" title="Ungulate">ungulates</a> such as <a href="/wiki/Deer" title="Deer">deer</a> and <a href="/wiki/Bovid" class="mw-redirect" title="Bovid">bovids</a>.</p>'; var searchString = 'largest cat species'; var rx = ''; searchString.split(' ').forEach(e => { rx += '('+e+')((?:\\s*(?:<\/?\\w[^<>]*>)?\\s*)*)'; }); rx = new RegExp(rx, 'igm'); console.log(text.match(rx));
이것은 아마 MongoDB를 집계 필터로 전환하는 것은 매우 쉽습니다.
-
==============================
9.이상적인 해답의 사용 지수 대소 문자 구분을위한 -i 옵션
이상적인 해답의 사용 지수 대소 문자 구분을위한 -i 옵션
db.users.findOne({"username" : new RegExp(search_value, 'i') });
from https://stackoverflow.com/questions/10610131/checking-if-a-field-contains-a-string by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] '꽤'파일로 MongoDB의 쉘 출력을 인쇄하는 방법은 무엇입니까? (0) | 2019.12.07 |
---|---|
[MONGODB] 어떻게 몽구스와 기존 모음에 액세스 할 수? (0) | 2019.12.07 |
[MONGODB] MongoDB를 집계 파이프 라인 느린 첫 경기의 단계 이후 (0) | 2019.12.07 |
[MONGODB] $ 조회 집계 필드를 제외 (0) | 2019.12.07 |
[MONGODB] 데이터베이스를 따기 후 인증합니다 (0) | 2019.12.07 |