MongoDB 쿼리 해석

한 문서에 묶어 저장하고,
필요한 경로만 바로 다룬다

Document Store는 주문처럼 함께 읽는 정보를 한 문서에 담는다. 그래서 중첩 필드 조회, 일부 필드 수정, 여러 문서 집계를 같은 데이터 모양 위에서 자연스럽게 이어갈 수 있다.

주문 문서 1개

JSON/BSON 구조
{
  user: { id: 1001, name: "김철수" },
  items: [{ product: "노트북", price: 1500000 }],
  total: 1500000,
  status: "shipped"
}
User 중첩 객체 사용자 정보가 주문 안에 함께 있다.
Items 배열 보관 상품 목록을 별도 조인 없이 담는다.
State 상태 값 유지 status, total만 골라 갱신·집계한다.

조회

중첩 필드 직접 검색

문서 전체를 분해하지 않아도 user.id 같은 경로를 조건으로 바로 찾는다.

db.orders.find({
  "user.id": 1001,
  total: { $gte: 100000 }
})

수정

필요한 필드만 변경

주문 전체를 다시 쓰지 않고 상태 필드만 바꿔 운영 상태를 반영한다.

db.orders.updateOne(
  { _id: "order_001" },
  { $set: { status: "delivered" } }
)

집계

여러 문서에서 결과 생성

shipped 주문만 모아 사용자별 합계를 계산하면, 문서 저장과 분석 쿼리가 한 컬렉션에서 이어진다.

match status = "shipped"
group by user.id
sum total, then sort