본문 바로가기
쿤즈 Server/MongoDB

[MongoDB] find() 검색(3): 비교 연산자 Comparison Operator

by :)Koon 2021. 6. 9.

데이터베이스에 데이터를 CRUD(Create Read Update Delete)를 할 때에, 가장 많이 사용하는 부분이 Read부분이 아닐까 생각됩니다. 효과적으로 가공도 해야 하고 통계를 위해 분석하고 조건을 만들어서 가져와야 하죠.

이번 포스팅은 find() 함수를 이용한 검색중에서 비교 연산자를 사용하여 검색하는 방법을 알아볼게요.


비교 연산자 Comparison Operator

비교 연산자는 이름 그대로 비교하여 결과를 반환하는 연산자입니다. 보통 연산자는 키워드를 의미합니다. 크다, 작다, 같다, 크거나 같다, 작거나 같다 같은 표현을 만들기 위해서 사용하는 키워드입니다.

 

mongoDB에서는 다음과 같은 키워드를 사용합니다.

  • $lte : 작거나 같다. (less than or equal)
  • $lt : 작다. (less than)
  • $eq : 같다. (equal)
  • $gte : 크거나 같다. (greater than or equal)
  • $gt : 크다. (greater than)
  • $ne : 같지 않다. (not equal)

그럼 비교 연산자를 이용해서 데이터를 가져와 보도록 하겠습니다.


비교 연산자 사용하기

우선 mongoDB에 접속합니다. 저는 몽고 쉘을 이용해서 접속하고 있습니다.

2021.03.27 - [쿤즈 Server/MongoDB] - [MongoDB] mongo shell을 이용한 mongodb 접속 방법(Windows / macOS)

 

[MongoDB] mongo shell을 이용한 mongodb 접속 방법(Windows / macOS)

데이터베이스를 볼 때는 Visual이 있는 툴이 있으면 굉장히 보기 편리합니다. 하지만 툴을 열고 다시 접속하고 하는 시간이 오래 걸리죠. 그리고 때로는 shell이 편한 경우가 많습니다. MongoDB 역시 A

koonsland.tistory.com

 

우선 trips라는 collection에서 검색을 하도록 할게요. 여행기간(tripduration)은 적어도 70일보다는 작고 usertype이 Subscriber가 아닌 데이터를 가져오려 합니다.

조건
- tripduration은 70보다 작거나 같다
- usertype은 Subscriber가 아니다
db.trips.find({
	"tripduration": {
		"$lte": 70
	},
	"usertype" : {
		"$ne": "Subscriber"
	}
}).pretty()

find() 함수에 검색조건 2개를 모두 입력합니다. 이때 비교연산자를 위와 같이 넣어줍니다. 만약 70보다 크거나 같을 경우는 {"$gte":70}으로 입력하면 되겠죠? 결과는 다음과 같습니다.

 

이번에 연산자만 다르게 해서 검색해 보겠습니다.

이번에는 usertype이 Customer인 데이터를 가져오도록 조건설정을 하겠습니다.

db.trips.find({
	"tripduration": {
		"$lte": 70
	},
	"usertype" : {
		"$eq": "Customer"
	}
}).pretty()

{"$eq":"Customer"}로 조건을 변경해 주시면 됩니다. 결과를 보겠습니다.

 

정확하게 Customer인 데이터를 가져오네요. 

 

하지만 사실 $eq은 사용하지 않아도 기본적인 값입니다. 즉, 다음과 같이 사용할 수 있습니다.

db.trips.find({
	"tripduration": {
		"$lte": 70
	},
	"usertype" : "Customer"
}).pretty()

기본적인 find() 검색시 연산자를 사용하지 않고 검색했던 거 기억나시나요?

2021.03.13 - [쿤즈 Server/MongoDB] - [MongoDB] Atlas 명령어 연결 및 find() 검색기능 사용방법

 

[MongoDB] Atlas 명령어 연결 및 find() 검색기능 사용방법

MongoDB가 무엇인지부터 MongoDB에서 사용하는 JSON과 BSON에 대해서도 차근차근 알아봤습니다. 기존에 많이 알려진 관계형 데이터베이스(RDBMS)가 아닌 NoSQL을 이용해서 데이터를 저장하는 방법을 채택

koonsland.tistory.com

이 기능은 기본 연산자로 $eq를 사용하고 있다고 생각할 수도 있습니다.


이번 포스팅에서는 find()의 세번째로 비교 연산자를 사용하는 방법을 알아보았습니다. 도움이 되셨으면 합니다. 이상입니다.

댓글