[MongoDB 기본 CRUD] 6. 비교 문법 사용하여 find()로 조건 조회하기
반갑습니다!
이번에는 find() 함수를 사용하여 특정 데이터 조건 조회시
필터로 지정할 수 있는 조건들 중에서
비교 문법에 관련된 내용에 대해서 알아보겠습니다 ^^
특정 데이터를 비교할 때는 다음과 같은 키워드를 사용할 수 있습니다
① $eq
특정 값에 매칭되는 조건을 의미합니다
ex) { name : { $eq : "Fletcher" } }
위 조건은 name 필드의 값이 Fletcher인 조건을 의미합니다
② $gt
특정 값보다 큰 조건(초과)을 의미합니다
ex) { age : { $gt : 50 } }
위 조건은 age 필드의 값이 50보다 큰 조건을 의미합니다
③ $gte
특정 값보다 크거나 같은 조건(이상)을 의미합니다
ex) { age : { $gte : 25 } }
위 조건은 age 필드의 값이 25보다 크거나 같은 조건을 의미합니다
④ $lt
특정 값보다 작은 조건(미만)을 의미합니다
ex) { height : { $lt : 12 } }
위 조건은 height 필드의 값이 12보다 작은 조건을 의미합니다
⑤ $lte
특정 값보다 작거나 같은 조건(이하)을 의미합니다
ex) { height : { $lte : 66 } }
위 조건은 height 필드의 값이 66보다 작거나 같은 조건을 의미합니다
⑥ $in
특정 값에 매칭되는 조건을 의미합니다
ex) { number : { $in : [ 52, 64, 85, 20 ] } }
위 조건은 number 필드의 값이 배열 [ 52, 64, 85, 20 ]에 포함되는 조건을 의미합니다
⑦ $nin
특정 값에 매칭되지 않는 조건을 의미합니다
ex) { number : { $in : [ 52, 64, 85, 20 ] } }
위 조건은 number 필드의 값이 배열 [ 52, 64, 85, 20 ]에 포함되지 않는 조건을 의미합니다
⑧ $ne
특정 값에 매칭되는 조건을 의미합니다
ex) { name : { $ne : "Brandon" } }
위 조건은 name 필드의 값이 "Brandon"이 아닌 조건을 의미합니다
예시를 몇 가지 들어보겠습니다 ^^
⑴
db.users.find({ age: { $gt: 25 } })
age 필드의 값이 25 초과인 데이터들을 조건 조회합니다
⑵
db.users.find({ age: { $lt: 25 } })
age 필드의 값이 25 미만인 데이터들을 조건 조회합니다
⑶
db.users.find({ age: { $gt: 25, $lte: 50 } })
age 필드의 값이 25를 초과하고 50 이하인 값들을 조건 조회합니다
위와 같이 특정 값을 비교하는 비교문법을 사용하면
보다 정교하게 데이터들을 조건 조회할 수 있습니다 ^^
연습문제를 한 번 풀어보겠습니다 ^^
1. age 필드의 값이 20보다 큰 도큐먼트의 name 필드만 출력하기
필터 조건으로 age 필드의 값이 20 이상이라는 의미로 $gte를 사용해주시면 되겠고,
그 다음 name 필드의 값을 1로 지정해서 출력할 컬럼으로 선택해주시면 되겠습니다 ^^
2. age가 50이고 address가 경기도인 도큐먼트의 name 필드만 출력하기
필터 조건을 사용할 때 특정 값에 매칭이 되는 조건에 대해서는
$eq를 사용해도 되고 바로 값으로 지정해도 됩니다
두 가지 모두 예시를 들기 위해서 위와 같이 조건을 지정했습니다 ^^
마찬가지로 name 필드만 지정해서 출력결과로 선택했습니다
3. age가 30보다 작은 도큐먼트의 name과 age 필드 출력하기
이번에는 $lt 키워드를 사용해서 30 미만의 조건을 지정했고
name과 age 필드를 지정해서 출력 결과로 선택했습니다 ^^