본문 바로가기
DB/MongoDB

데이터 베이스(No SQL) - MongoDB 비교 연산자

by nomfang 2021. 1. 23.
728x90
반응형

비교 쿼리 연산자

특정 조건에 해당하는 도큐먼트를 조회하고 싶을 경우에는 조건을 JSON 형태로 입력

RDB처럼 다양한 비교 연산자를 활용하여 조회할 수도 있습니다.

연산자 대체 문자열을 이용하여 비교문을 작성

 

기호                                             대체 문자열                                      의미

= $eq 같은 (equal)
!= $ne 같지 않은 (not equal)
< $lt 미만 (less than)
<= $lte 이하 (less than equal)
> $gt 초과 (greater than)
>= gte 이상 (greater than equal)

$gt연산자

해당 값보다 더 큰 값을 가진 필드를 찾는 연산자, 날짜와 ObjectId도 비교 가능

 

#문법 {필드 명: {$gt: value} }

#예시) 주소가 문자 "S" 이후로 시작하는 도큐먼트 조회

query = { "address": { "$gt": "S" } }

mydoc = mycol.find(query)

$gte연산자

해당 값보다 크거나 같은 값을 가진 필드를 찾는 연산자

#문법 {필드 명: {$gte: value} }

#예시) 키가 160이상인 사람을 조회

query = { "height": { "$gte": 160 } }

mydoc = mycol.find(query)

$in연산자

필드의 값이 $in안에 들어있는 값들 중 하나인 필드를 찾는 연산자

 value1, value2, value3 중 하나면 반환하는 것

#문법 { 필드 명: { $in: [<value1>, <value2>, <value3>, ... <valueN> ] } }

#예시) address가 Seoul 342, Incheon 125, Busan 876 중 하나인 값을 조회

query = { "address": { "$in": ["Seoul 342", "Incheon 125", "Busan 876"] } }

mydoc = mycol.find(query)

$lt연산자

해당 값보다 작은 값을 가진 필드를 찾는 연산자입니다.

#문법 {필드 명: {$lt: value} }#예시) 20살 미만인 사람을 조회 query = { "age": { "$lt": 20 } } mydoc = mycol.find(query)

$lte연산자

해당 값보다 작거나 같은 값을 가진 필드를 찾는 연산자입니다.

#문법 { 필드 명: { $lte: value} }#예시) 19살 이하인 사람을 조회 query = { "age": { "$lte": 19 } } mydoc = mycol.find(query)

$ne연산자

해당 값과 일치하지 않는 값을 가진 필드를 찾는 연산자입니다.

#문법 {필드 명: {$ne: value} }#예시) 키가 160이 아닌 사람 조회 query = { "height": { "$ne": 160 } } mydoc = mycol.find(query)

$nin연산자

$nin 안에 값들이 아닌 필드 (not in)

#문법 { 필드 명: { $nin: [ <value1>, <value2>, <value3> ... <valueN> ]} }

#예시) 아래 주소가 아닌 필드 조회

query = { "address": { "$nin": ["Seoul 342", "Incheon 125", "Busan 876"] } }

mydoc = mycol.find(query)

반응형

댓글