[TIL] MongoDB Compass 검색 쿼리

flobeeee·2024년 2월 13일
0

Today I Learned

목록 보기
33/35
post-thumbnail

1. MongoDB 란?

NoSQL DBMS의 한 종류 (SQL을 사용하는 관계형 데이터베이스가 아니라는 의미)
Document모델을 사용
MySQL의 테이블과 같은 스키마가 고정된 구조 대신에 JSON 형태의 동적 스키마형 문서 사용
기존 RDBMS보다 속도가 매우 빠르다. (똑같은 조건으로 설계하는 경우

2. MongoDB Compass 란?

MongoDB용 GUI

3. 검색하기

mongoDB Compass에서 검색을 할 때, Aggregations 탭에서
Add Stage 버튼을 눌러서 조건을 하나씩 추가하면 된다.

아래는 자주 사용하는 쿼리이다.

[
  {
    '$match': { // 조회조건문
      'USER_ID': 16,
      'COLOR_TYPE': {
        '$in': [
          'RED', 'BLACK', 'PINK', 'YELLOW'
        ]
      }
    }
  }, {
    '$lookup': { // join 문
      'from': 'PRODUCT', // join 할 테이블
      'localField': 'PRODUCT_ID',
      'foreignField': 'PRODUCT_ID',
      'as': 'productInfo'
    }
  }, {
    '$unwind': { // join한 productInfo 배열요소의 순번
      'path': '$productInfo',
      'includeArrayIndex': 'PRODUCT_INDEX'
    }
  }, {
    '$addFields': { // 조인한 DB에서 데이터 꺼내기
      'is_delete': '$productInfo.IS_DELETED',
      'client_type': '$productInfo.CLIENT_TYPE',
      'regist_dt': '$productInfo.REGIST_DT'
    }
  }, {
    '$match': { // 조건문
      'PRODUCT_INDEX': 0,
      'is_delete': 0
    }
  }, {
    '$sort': { // sort
      'regist_dt': -1
    }
  }, { // 리미트
    '$limit': 1
  }
]

  • 참고

나무위키
[MongoDB] 강좌 1편: 소개, 설치 및 데이터 모델링
LINE+가 사내에 MongoDB를 도입한 이유
MongoDB 이해하기

profile
기록하는 백엔드 개발자

0개의 댓글