콘텐츠로 건너뛰기
리뷰나라
  • JAVASCRIPT
  • JAVA
  • PYTHON
  • C#
  • Android
  • Html

[sql] “like”로 MongoDB를 쿼리하는 방법은 무엇입니까?

Program / 글쓴이 어드민

SQL 쿼리로 무언가를 쿼리하고 싶습니다 like.

SELECT * FROM users  WHERE name LIKE '%m%'

MongoDB에서 어떻게 동일한 결과를 얻습니까? 설명서like 에서 연산자를 찾을 수 없습니다 .



답변

다음과 같아야합니다.

db.users.find({"name": /.*m.*/})

또는 유사한 :

db.users.find({"name": /m/})

문자열의 시작 부분에 “m”이 고정 된 것이 아니라 “m”이 포함 된 것을 찾고 있습니다 (SQL의 ‘ %‘연산자는 Regexp의 ‘ .*‘ 와 동일 함 ).

참고 : mongodb는 SQL에서 “LIKE”보다 강력한 정규식을 사용합니다. 정규 표현식을 사용하면 상상할 수있는 패턴을 만들 수 있습니다.

정규 표현식에 대한 자세한 내용은이 링크를
참조하십시오 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions


답변

db.users.insert({name: 'paulo'})
db.users.insert({name: 'patric'})
db.users.insert({name: 'pedro'})

db.users.find({name: /a/})  //like '%a%'

아웃 : 파울로

db.users.find({name: /^pa/}) //like 'pa%' 

아웃 : 파울로

db.users.find({name: /ro$/}) //like '%ro'

아웃 : 페드로


답변

에

  • 파이썬을 사용하는 PyMongo
  • Node.js를 사용하는 몽구스
  • Java를 사용하는 Jongo
  • Go를 사용하여 mgo

넌 할 수있어:

db.users.find({'name': {'$regex': 'sometext'}})


답변

PHP에서는 다음 코드를 사용할 수 있습니다.

$collection->find(array('name'=> array('$regex' => 'm'));


답변

몽고에서는 정규 표현식을 사용합니다.

예 : db.users.find({"name": /^m/})


답변

이미 많은 답변이 있습니다. 정규식으로 문자열 검색을위한 다양한 유형의 요구 사항과 솔루션을 제공하고 있습니다.

단어를 포함하는 정규 표현식으로 할 수 있습니다. $options => i대소 문자를 구분하지 않는 검색에도 사용할 수 있습니다

포함 string

db.collection.find({name:{'$regex' : 'string', '$options' : 'i'}})

string정규식 만 포함하지 않습니다

db.collection.find({name:{'$regex' : '^((?!string).)*$', '$options' : 'i'}})

대소 문자를 구분하지 않음 string

db.collection.find({name:{'$regex' : '^string$', '$options' : 'i'}})

로 시작 string

db.collection.find({name:{'$regex' : '^string', '$options' : 'i'}})

끝나다 string

db.collection.find({name:{'$regex' : 'string$', '$options' : 'i'}})

이것을 책갈피로 유지 하고 필요한 다른 변경 사항에 대한 참조로 유지하십시오 .


답변

두 가지 선택이 있습니다 :

db.users.find({"name": /string/})

또는

db.users.find({"name": {"$regex": "string", "$options": "i"}})

두 번째 옵션에서는 대소 문자를 구분하지 않고 찾을 수있는 옵션에 “i”와 같은 추가 옵션이 있습니다. “string”에 대해서는 “.string . “(% string %) 또는 “string. *”(string %) 및 “. * string) (% string)과 같이 사용할 수 있습니다. 정규식을 사용할 수 있습니다. 원하는대로.

즐겨!




글 탐색

← 이전 글
다음 글 →

최신 글

  • [java] .pem 파일을 읽고 개인 및 공개 키를 얻는 방법
  • [javascript] 페이지의 모든 AJAX 요청에 “후크”추가
  • [android] ListView가 접히지 않고 어떻게 ScrollView에 넣을 수 있습니까?
  • [linux] Apache 서버의 루트 디렉토리를 어떻게 변경합니까? [닫은]
  • [ios] Swift에서 Int를 Hex String으로 변환하는 방법
  • [python] 등급 시스템 기능에서 반복적 인 if-elif 문을 어떻게 단순화 할 수 있습니까?
  • [c#] C #에서 스택 오버플로 예외 포착
  • [windows] Windows의 /usr/local/ssl/openssl.cnf에서 구성 정보를로드 할 수 없습니다
  • [twitter-bootstrap] Bootstrap을 사용하여 모바일에 테이블을 표시하는 방법은 무엇입니까?
  • [windows] BATCH 스크립트에서 무작위로 사용하는 방법은 무엇입니까?

카테고리

태그

.net android angular angularjs arrays asp.net asp.net-mvc bash c c# css database django docker html ios iphone java javascript jquery json linux macos mysql node.js objective-c pandas php postgresql python r reactjs regex ruby ruby-on-rails shell sql sql-server string swift typescript unix visual-studio windows xcode
Copyright © daplus.net - Powered by Naya