본문 바로가기
프로그래머

MongoDB Compass란 무엇이고 , MongoDB Atlas 사용방법을 알아보고 MongoDB Atlas 주요 기능을 설명합니다.

by 정보경험 2025. 1. 22.
반응형

 

 

 

 

1. MongoDB Compass란?

MongoDB Compass는 MongoDB의 공식 GUI 도구로, 데이터를 시각화하고 데이터베이스를 효율적으로 관리할 수 있습니다. MongoDB Atlas와 통합하면 클라우드 데이터베이스를 쉽게 탐색하고 관리할 수 있습니다.

2. MongoDB Compass 설치

  1. 공식 웹사이트(MongoDB Compass 다운로드)에서 Compass를 다운로드합니다.
  2. 운영 체제에 맞는 설치 파일을 실행하고 설치를 완료합니다.
  3. 설치 후, MongoDB Compass를 실행합니다.

3. MongoDB Atlas와 연결 설정

Atlas에서 연결 URI 복사

  1. MongoDB Atlas 대시보드로 이동합니다.
  2. "Clusters" 섹션에서 연결하려는 클러스터를 선택합니다.
  3. "Connect" 버튼을 클릭한 뒤 "Connect with MongoDB Compass"를 선택합니다.
  4. 제공된 URI를 복사합니다.

Compass에서 연결 설정

  1. MongoDB Compass를 실행합니다.
  2. "Paste your connection string (SRV or Standard)" 필드에 복사한 URI를 붙여넣습니다.
  3. "Connect" 버튼을 클릭하여 Atlas 클러스터에 연결합니다.

4. 데이터 탐색 및 관리

Compass를 사용하여 다음 작업을 수행할 수 있습니다:

  • 데이터 시각화: 컬렉션의 데이터를 표 형태로 확인하고 필터를 적용할 수 있습니다.
  • 인덱스 관리: 컬렉션에 적절한 인덱스를 추가하여 쿼리 성능을 최적화합니다.
  • 데이터베이스 생성/삭제: 새로운 데이터베이스와 컬렉션을 쉽게 생성하거나 삭제할 수 있습니다.

 

 

 

 

컬렉션 관리 예제

db.collection("users").insertOne({
    name: "Alice",
    age: 25,
    email: "alice@example.com"
});

5. 주요 기능 비교

기능 설명 Compass 사용 시 장점
데이터 시각화 컬렉션 데이터를 표 형태로 확인 가능 즉각적인 데이터 확인
쿼리 테스트 쿼리 작성 및 실행 쿼리 성능 테스트 용이
인덱스 관리 인덱스 추가/삭제 성능 최적화

 

 

 

 

6. MongoDB Compass 사용 팁

  • 자주 사용하는 쿼리는 "Query History"에서 쉽게 확인할 수 있습니다.
  • "Explain Plan" 기능을 활용하여 쿼리 성능을 분석하세요.
  • "Aggregation Pipeline Builder"를 사용하여 복잡한 집계 작업을 쉽게 설정하세요.

집계 파이프라인 예제 

db.collection("orders").aggregate([
    { $match: { status: "completed" } },
    { $group: { _id: "$customerId", totalSpent: { $sum: "$amount" } } }
]);

 

집계 파이프라인 케이스별 예제 코드

 

1. 사용 사례: 고객별 총 구매 금액 계산

db.collection("orders").aggregate([
    { $match: { status: "completed" } },
    { $group: { _id: "$customerId", totalSpent: { $sum: "$amount" } } }
]);

설명: "completed" 상태의 주문만 집계하고, 고객별로 총 구매 금액을 계산합니다. 이 예제는 고객별 소비 패턴을 분석하는 데 유용합니다.

2. 사용 사례: 월별 판매량 분석

db.collection("sales").aggregate([
    { $project: { month: { $month: "$date" }, amount: 1 } },
    { $group: { _id: "$month", totalSales: { $sum: "$amount" } } },
    { $sort: { _id: 1 } }
]);

설명: 판매 데이터를 월별로 그룹화하여 총 판매 금액을 계산합니다. $project 단계에서 날짜 필드에서 월 정보를 추출합니다.

 

 

 

 

3. 사용 사례: 인기 상품 TOP 5

db.collection("products").aggregate([
    { $group: { _id: "$productName", totalSold: { $sum: "$quantity" } } },
    { $sort: { totalSold: -1 } },
    { $limit: 5 }
]);

설명: 판매량이 많은 상위 5개 제품을 식별합니다. $group 단계에서 각 제품의 판매량을 합산하고, $sort와 $limit 단계를 사용해 상위 5개를 가져옵니다.

4. 사용 사례: 지역별 평균 주문 금액

db.collection("orders").aggregate([
    { $group: { _id: "$region", avgOrderAmount: { $avg: "$amount" } } },
    { $sort: { avgOrderAmount: -1 } }
]);

설명: 지역별 평균 주문 금액을 계산합니다. 이 데이터는 지역별 구매력을 이해하거나 마케팅 전략을 수립하는 데 도움이 됩니다.

5. 사용 사례: 특정 카테고리의 주간 판매 추이

db.collection("sales").aggregate([
    { $match: { category: "electronics" } },
    { $project: { week: { $isoWeek: "$date" }, amount: 1 } },
    { $group: { _id: "$week", totalSales: { $sum: "$amount" } } },
    { $sort: { _id: 1 } }
]);

 


설명:
 특정 카테고리(electronics)의 주별 판매 추이를 분석합니다. $isoWeek를 사용해 날짜에서 주 단위를 추출합니다.

 

 

 

6. 집계 단계 요약

단계 설명 사용 목적
$match 특정 조건으로 데이터를 필터링 원하는 데이터만 추출
$group 데이터를 그룹화하고 통계 계산 합계, 평균 등 계산
$sort 데이터를 정렬 결과를 특정 순서로 정렬
$project 필드 선택 및 계산 필요한 필드만 포함
$limit 결과 개수를 제한 상위 결과 추출
반응형