웹개발

[mongoDB] $ ( 연산자(operator) 또는 플레이스홀더)

Heeyeon Choi 2025. 1. 2. 16:52
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