MongoDB Compass는 MongoDB 데이터를 시각적으로 관리하고 쿼리를 실행할 수 있는 강력한 GUI 도구로, 초보자도 쉽게 사용할 수 있음. 이 글에서는 MongoDB Compass에서 자주 사용되는 주요 쿼리 기능과 개념을 설명하며, 코드 사용을 최소화하고 이해를 돕는 방식으로 정리함.
1. 기본 문서 조회
1-1. 모든 문서 조회
컬렉션의 모든 문서를 조회하려면 빈 필터를 입력:
- 필터: {}
- SQL로 치면 SELECT * FROM collection과 동일.
- Compass에서는 FILTER 필드에 {}를 입력 후 FIND 버튼을 클릭하면 됨.
1-2. 특정 조건 조회
특정 필드 값과 일치하는 문서를 조회하려면:
- 예: status가 "active"인 문서
- 필터: { "status": "active" }
2. 조건 조합 (AND, OR)
2-1. AND 조건
여러 조건을 동시에 만족하는 문서를 찾으려면:
- 예: status가 "A"이고, qty가 50보다 큰 경우
- 필터: { "status": "A", "qty": { "$gt": 50 } }
2-2. OR 조건
조건 중 하나라도 만족하는 문서를 찾으려면 $or 연산자를 사용:
- 예: status가 "A"이거나 qty가 30보다 작은 경우
- 필터: { "$or": [ { "status": "A" }, { "qty": { "$lt": 30 } } ] }
2-3. 복합 조건 (AND + OR)
복잡한 조건 조합도 가능:
- 예: status가 "A"이고, qty가 30보다 작거나 item이 'p'로 시작하는 경우
- 필터: { "status": "A", "$or": [ { "qty": { "$lt": 30 } }, { "item": { "$regex": "^p" } } ] }
3. 결과 정렬 및 필드 제한
3-1. 특정 필드만 반환 (Projection)
필요한 필드만 반환하려면 PROJECTION 옵션을 설정:
- 예: _id 제외, name과 price만 반환
- 프로젝션: { "_id": 0, "name": 1, "price": 1 }
3-2. 정렬 (Sort)
결과를 정렬하려면 SORT 옵션을 사용:
- 예: 가격 내림차순 정렬
- 정렬: { "price": -1 }
3-3. 함께 사용하기
필드 제한과 정렬을 조합:
- 예: 전자제품 카테고리의 상품 이름과 가격만 내림차순으로 정렬
- 필터: { "category": "electronics" }
- 프로젝션: { "_id": 0, "name": 1, "price": 1 }
- 정렬: { "price": -1 }
4. 패턴 매칭 (LIKE)
MongoDB는 $regex를 통해 문자열 패턴 검색 가능:
- 예: 이름이 'Sam'으로 시작하는 경우
- 필터: { "name": { "$regex": "^Sam", "$options": "i" } }
- "^Sam": 'Sam'으로 시작.
- $options: "i": 대소문자 구분 없음.
5. 범위 검색 (Range Queries)
비교 연산자를 활용해 범위를 지정할 수 있음:
- $gt: 초과, $gte: 이상, $lt: 미만, $lte: 이하.
- 예: 가격이 100 이상이고 500 이하인 경우
- 필터: { "price": { "$gte": 100, "$lte": 500 } }
6. 페이징 (Pagination)
결과를 페이지 단위로 나누려면 LIMIT 및 SKIP 옵션 사용:
- 첫 번째 페이지(10개 문서):
- LIMIT: 10, SKIP: 0
- 두 번째 페이지(다음 10개 문서):
- LIMIT: 10, SKIP: 10
7. 집계(Aggregation Pipeline)
복잡한 데이터 처리를 위해 Aggregation Pipeline Builder를 활용 가능.
예: 브랜드별 평균 가격 계산 및 내림차순 정렬
[ { "$match": { "category": "electronics" } }, { "$group": { "_id": "$brand", "avgPrice": { "$avg": "$price" } } }, { "$sort": { "avgPrice": -1 } } ]
Compass의 Aggregation Pipeline Builder에서 단계별로 추가해 실행 가능.
8. Compass의 유용한 기능
- 자동 완성
- 쿼리 작성 시 필드명과 연산자를 자동 추천.
- 실시간 검증
- 잘못된 쿼리 입력 시 빨간색 배지로 오류 표시.
- 시각적 데이터 분석
- Schema 메뉴에서 데이터 분포와 통계를 확인 가능.
MongoDB Compass는 초보자도 쉽게 MongoDB 데이터를 관리할 수 있도록 돕는 도구임. 위에서 소개한 쿼리와 기능은 실무에서 자주 사용되는 기본적인 작업들로, 이를 활용하면 데이터 조회와 관리 효율성을 크게 높일 수 있음.