CRUD 작업

70_Lecture/MongoDB
공유하기:

CRUD 작업

1. 쓰기 작업 (Create & Update)

Write Concern

쓰기 작업의 안정성을 결정하는 옵션입니다.

  • w: 1: 기본값. Primary 노드의 메모리에만 쓰기가 성공하면 응답.
  • w: majority: 과반수 이상의 노드에 쓰기가 완료되어야 성공으로 간주.
  • j (journal): 저널 파일(디스크)에 기록될 때까지 기다릴지 여부.

2. 쿼리 연산자 (Read)

조회 시 사용하는 핵심 연산자들입니다.

연산자설명
$eq, $ne같음, 같지 않음
$gt, $gte, $lt, $lte큼, 크거나 같음, 작음, 작거나 같음
$in, $nin배열 내 존재 여부
$and, $or, $not논리 연산자
$exists필드 존재 여부 확인

3. 업데이트 연산자

  • $set: 필드 값 설정.
  • $unset: 필드 삭제.
  • $inc: 필드 값을 특정 수만큼 증가/감소.
  • $push: 배열에 요소 추가.
  • $pull: 배열에서 요소 제거.

4. 실습 명령어

// 데이터 삽입
db.users.insertOne({ name: "Chayoung", age: 25 })
 
// 조건 조회 및 정렬
db.users.find({ age: { $gte: 20 } }).sort({ name: 1 })
 
// 특정 필드만 조회 (Projection)
db.users.find({}, { name: 1, _id: 0 })
 
// 데이터 업데이트 (필드가 없으면 추가)
db.users.updateOne(
  { name: "Chayoung" },
  { $set: { status: "active" } }
)

5. 시험 팁 (Certification Tips)

  • w: majority 옵션의 의미와 성능/안정성 간의 트레이드오프를 이해하세요.
  • upsert: true 옵션의 역할을 숙지하세요 (매칭되는 문서가 없으면 생성).
  • 프로젝션에서 _id를 제외한 나머지는 0과 1을 섞어 쓸 수 없다는 점 주의 (예외: _id: 0).

6. 베스트 프랙티스

  • 대량의 데이터를 삽입할 때는 insertOne 대신 insertMany를 사용하여 네트워크 라운드트립을 줄이세요.
  • 쿼리 성능을 높이기 위해 자주 조회되는 필드에는 인덱스를 생성하세요.