데이터베이스에 데이터를 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)
우선 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() 검색기능 사용방법
이 기능은 기본 연산자로 $eq를 사용하고 있다고 생각할 수도 있습니다.
이번 포스팅에서는 find()의 세번째로 비교 연산자를 사용하는 방법을 알아보았습니다. 도움이 되셨으면 합니다. 이상입니다.
'쿤즈 Server > MongoDB' 카테고리의 다른 글
[MongoDB] 데이터 삭제(Delete) 방법 (0) | 2021.06.07 |
---|---|
[MongoDB] 검색(2): Array 또는 Object 검색 방법 (0) | 2021.04.14 |
[MongoDB] 데이터 수정(Update) 방법 (0) | 2021.04.08 |
[MongoDB] 데이터 입력 insert() (2) : 배열 넣기 및 옵션 (0) | 2021.04.01 |
[MongoDB] 데이터 입력 (insert) 사용 방법 (0) | 2021.03.30 |
댓글