Mongodb: 필드에 문자열이 포함되어 있는지 확인하는 방법


MongoDB에서 다음 구문을 사용하여 특정 필드에 특정 문자열이 포함되어 있는지 확인할 수 있습니다.

 db.collection.findOne({ name : { $regex : /string/ }})

다음 예에서는 다음 문서를 사용하여 컬렉션 에서 이 구문을 사용하는 방법을 보여줍니다.

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

예시 1: 필드에 문자열이 포함되어 있는지 확인

다음 코드를 사용하여 팀 필드에 “avs” 문자열이 포함된 문서가 있는지 확인할 수 있습니다.

 db.teams.findOne({ team : { $regex : /avs/ }}) 

이 쿼리는 다음 문서를 반환합니다.

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

findOne() 함수는 쿼리 기준을 충족하는 컬렉션의 첫 번째 문서를 반환합니다.

이는 다른 팀도 팀 이름에 “avs”라는 문자열을 포함할 수 있지만 팀 이름 “Mavs”가 포함된 문서가 단순히 첫 번째라는 의미입니다.

예시 2: 필드에 문자열이 포함되어 있는지 확인(대소문자 구분 안 함)

문자열 뒤에 i를 사용하여 대소문자를 구분하지 않고 일치시킬 수도 있습니다.

예를 들어 다음 쿼리를 사용한다고 가정해 보겠습니다.

 db.teams.findOne({ team : { $regex : /AVS/i }}) 

이 쿼리는 다음 문서도 반환합니다.

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

예시 3: 필드에 문자열이 포함되어 있는지 확인(결과 없음)

필드에 우리가 찾고 있는 특정 문자열이 포함되어 있지 않으면 그에 따라 null을 받게 됩니다.

예를 들어 다음 쿼리를 사용한다고 가정해 보겠습니다.

 db.teams.findOne({ team : { $regex : /ricks/ }})

이 쿼리는 다음 결과를 반환합니다.

 null

팀 이름에 “ricks”라는 문자열이 포함된 문서가 없으므로 결과적으로 null이 수신됩니다.

참고 : $regex 에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 MongoDB에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

MongoDB: 특정 필드에서 “not null”을 검색하는 방법
MongoDB: “Like” 정규식을 사용하여 쿼리하는 방법
MongoDB: 컬렉션에 새 필드를 추가하는 방법
MongoDB: 각 문서에서 필드를 제거하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다