728x90
1. $ 연산자의 주요 분류
1.1 쿼리 연산자 ($로 시작)
: 데이터 검색에 사용됩니다. 조건을 정의하거나 특정 기준에 맞는 문서를 찾을 때 사용합니다.
연산자 | 설명 |
$eq | 특정 값과 같은 문서를 찾음 (equal) |
$ne | 특정 값과 같지 않은 문서를 찾음 (not equal) |
$gt, $gte | 값이 특정 값보다 크거나 같음 (greater than, greater than or equal) |
$lt, $lte | 값이 특정 값보다 작거나 같음 (less than, less than or equal) |
$in | 배열에 포함된 값 중 하나와 일치하는 문서를 찾음 |
$nin | 배열에 포함되지 않은 값을 가진 문서를 찾음 |
$exists | 특정 필드의 존재 여부 확인 |
$regex | 정규 표현식과 일치하는 문서를 찾음 |
$size | 배열 필드의 크기가 특정 값과 같은 문서를 찾음 |
$all | 배열에 모든 값이 포함된 문서를 찾음 |
예)
db.collection("users").find({ age: { $gte: 18 } });
// age가 18 이상인 사용자 검색
1.2 업데이트 연산자
- 데이터 수정에 사용됩니다
연산자 | 설명 |
$set | 필드 값을 설정하거나 추가 |
$unset | 필드를 삭제 |
$inc | 숫자 값을 증가/감소 |
$push | 배열에 값을 추가 |
$pop | 배열에서 첫 번째 또는 마지막 값을 제거 |
$pull | 배열에서 특정 조건을 만족하는 값을 제거 |
$addToSet | 배열에 중복되지 않게 값을 추가 |
예)
db.collection("users").updateOne({ _id: 1 }, { $set: { name: "Alice" } });
// _id가 1인 문서의 name 필드를 "Alice"로 설정
1.3 집계 연산자
- 데이터 분석과 변환을 위한 연산자입니다.
연산자 | 설명 |
$sum | 값을 합산 |
$avg | 평균 값을 계산 |
$min, $max | 최소값 또는 최대값을 계산 |
$group | 그룹화 |
$match | 조건에 맞는 문서를 필터링 |
$sort | 문서를 정렬 |
$project | 필드를 선택하거나 가공 |
예)
db.collection("sales").aggregate([
{ $group: { _id: "$category", totalSales: { $sum: "$amount" } } }
]);
// category별로 총 판매액 계산
1.4 플레이스홀더
- 업데이트 또는 배열 작업에서 특정 위치를 나타내는 데 사용됩니다.
연산자 | 설명 |
$ | 배열의 첫 번째 일치하는 요소를 참조 |
$[] | 배열의 모든 요소를 참조 |
$[<identifier>] | 배열의 특정 필터링된 요소를 참조 (Array Filters) |
예)
db.collection("users").updateOne(
{ "tags.name": "mongodb" },
{ $set: { "tags.$.status": "updated" } }
);
// tags 배열에서 name이 'mongodb'인 첫 번째 요소의 status를 'updated'로 변경
728x90