반응형
비교 연산자
// 같음
db.users.find({ age: 30 })
// 크기 비교
db.users.find({ age: { $gt: 25 } }) // 초과 (greater than)
db.users.find({ age: { $gte: 25 } }) // 이상 (greater than & equal)
db.users.find({ age: { $lt: 35 } }) // 미만 (less than)
db.users.find({ age: { $lte: 35 } }) // 이하 (less than & equal)
db.users.find({ age: { $ne: 30 } }) // 같지 않음 (not equal)
// 범위
db.users.find({ age: { $gte: 25, $lte: 35 } }) // 25이상 35이하
// 포함
db.users.find({ age: { $in: [25, 30, 35] } }) // 25, 30, 35 에 해당되는 데이터
db.users.find({ age: { $nin: [25, 30, 35] } }) // 25, 30, 35 그 무엇에도 해당되지 않는 데이터
논리 연산자
// AND (기본)
db.users.find({
age: { $gte: 25 },
city: "서울"
})
// OR
db.users.find({
$or: [
{ age: { $lt: 25 } },
{ city: "부산" }
]
})
// NOT
db.users.find({
age: { $not: { $gte: 30 } }
})
// NOR
db.users.find({
$nor: [
{ age: { $lt: 25 } },
{ city: "서울" }
]
})
배열 쿼리
// 배열 요소 포함
db.users.find({ hobbies: "독서" })
// 모든 요소 포함
db.users.find({ hobbies: { $all: ["독서", "영화감상"] } })
// 배열 크기
db.users.find({ hobbies: { $size: 2 } })
// 배열 요소 조건
db.users.find({
"scores.math": { $gte: 90 }
})
정규 표현식
// 패턴 매칭
db.users.find({ name: /^홍/ }) // 홍으로 시작
db.users.find({ name: /동$/ }) // 동으로 끝남
db.users.find({ name: /길/ }) // 길 포함
db.users.find({ email: /@gmail\.com$/}) // Gmail 주소
존재성 및 타입 검사
// 필드 존재
db.users.find({ phone: { $exists: true } })
// 타입 검사
db.users.find({ age: { $type: "number" } })
db.users.find({ age: { $type: 16 } }) // BSON 타입 코드
반응형
'Database > MongoDB' 카테고리의 다른 글
| MongoDB #5 (집계) (0) | 2025.07.28 |
|---|---|
| MongoDB #4 (인덱싱) (0) | 2025.07.28 |
| MongoDB #2 (기본 명령어, CRUD) (1) | 2025.07.28 |
| MongoDB #1 (소개) (1) | 2025.07.28 |
| MongoDB #0 (설치 & 세팅) (0) | 2025.07.28 |