본문 바로가기

개발자는 오늘도 달립니다.

[MongoDB] 비교, 논리 쿼리 연산자 본문

데이터베이스/몽고DB

[MongoDB] 비교, 논리 쿼리 연산자

✍21시간 2020. 7. 10. 09:07

Mongo DB 쿼리 연산자에 대해서 알아보겠습니다.  ٩( ᐛ )و

쿼리 연산자는 다큐먼트를 조회할 때 구체적으로 찾기 위해 조건을 입력하는 것을 도와주는 기호입니다. 몇 개는 지난 시간에 미리 보셨을 겁니다. 쿼리 연산자는 모두 $로 시작합니다. 오늘은 비교 쿼리 연산자에 대해 알아보겠습니다.

 

비교 쿼리

$gt

해당 값보다 더 큰 값을 가진 필드를 찾습니다. 숫자 뿐만 아니라 날짜와 ObjectId도 비교할 수 있습니다.

{ 필드: { $gt:} }

$lt

해당 값보다 작은 값을 가진 필드를 찾습니다

{ 필드: { $lt:} }

$gte

해당 값보다 크거나 같은 값을 가진 필드를 찾습니다

{ 필드: { $gte:} }

$lte

해당 값보다 작거나 같은 값을 가진 필드를 찾습니다

{ 필드: { $lte:} }

$eq

해당 값과 일치하는 값을 가진 필드를 찾습니다. 사실 그냥 { 필드: 값 } 하는 것과 같습니다.

{ 필드: { $eq:} }

$ne

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

{ 필드: { $ne:} }

$in

필드의 값이 $in 안에 들어있는 값들 중 하나인 필드를 찾습니다. 아래의 예를 보면 값1, 값2, 값3, ...이 있는데 필드의 값이 그 중 하나면 반환하는 겁니다.

{ 필드: { $in: [1,2,3, ... ] }

$nin

필드의 값이 $nin 안에 값들이 아닌 필드를 찾습니다. 아래의 예를 보면 값1, 값2, 값3, ...이 있는데 필드의 값이 그 값들이 아니어야 합니다.

{ 필드: { $nin: [1,2,3, ... ] }

 

 

논리 쿼리

$or

$or은 여러 개의 조건 중에 적어도 하나를 만족하는 다큐먼트를 찾습니다.

{ $or: [{ 조건1 }, { 조건2 }, ...] }

$and

$and는 여러 개의 조건을 모두 만족하는 다큐먼트를 찾습니다. 조건이 간단하면 그냥 { 필드: 값, 필드: 값 } 이렇게 $and가 없어도 되지만, 주로 다음과 같은 경우 때문에 $and가 필요합니다.

{ $and: [ { $or: [{ 조건1 }, { 조건2 }] }, { $or: [{ 조건3 }, { 조건4 }] } ] }

$nor

$nor은 여러 개의 조건을 모두 만족하지 않는 다큐먼트를 찾습니다. 조건1, 조건2 등등을 모두 만족하지 않아야합니다.

{ $nor: [{ 조건1 }, { 조건2 }, ...] }

$not

$not은 뒤의 조건을 만족하지 않는 필드를 찾습니다. $nor의 단일 버전이라고 보시면 됩니다.

{ $not: { 조건 } }

 

다음 시간에는 요소 쿼리 연산자 평가 쿼리 연산자에 대해 알아보겠습니다!

Comments