M100: MongoDB for SQL Pros - 3

김하영·2023년 1월 2일
0

LESSON 3: CODE AND QUERIES

쿼리 언어

  • MongoDB 에는 두가지 쿼리 언어인 MQL, MongoDB 집계 프레임워크을 제공한다.
  • SQL은 선언적 언어인 반면 MQL 및 MongoDB 집계 프레임워크는 명령형 언어이다.
  • SQL은 원하는 결과를 설명하지만, MQL은 수행할 작업에 대해 알려준다.

MQL

  • MongoQueryLanguage 은 단일 컬렉션 내에 문서를 쿼리하도록 설계된 간단한 구문을 사용한다.
  • 문서의 집계 또는 복잡한 조작을 위해 설계되지 않았다.

MongoDB 집계 프레임워크

  • 복잡한 작업을 더 작은 단계로 나누어 집계를 더 쉽게 생성할 수 있도록 설계되었다.
  • 단계 내에서 사용할 수 있는 데이터 조작 및 변환을 위한 공통 연산자 세트를 제공한다.
  • 복잡한 쿼리를 실행해야 하고, 간단한 MQL쿼리로 충분하지 않을 때 집계 파이프라인이 사용된다.

MQL Syntax

  • db.(collection).find() 메소드를 통해 컬렉션을 지정한다.
    -> SQL 의 SELECT
  • 필드 값 표현식으로 구성된 쿼리 필터를 사용한다.
    -> db.collection.find({field1:value,...})
    -> SQL 의 WHERE
  • 쿼리 연산자는 쿼리 필터 문서에서 조건을 지정할 수 있다.
    -> db.collection.find({field1:{operator1:value},...})

MongoDB Aggregation Framework Queries

  • MongoDB 집계 프레임워크는 쿼리에도 사용할 수 있고, 풍부한 표현 데이터 처리 파이프라인을 위해 설계되었다.
  • MongoDB 집계 프레임워크는 여러 변환, 여러 컬렉션이 포함될 수 있다.
  • db.(collection).aggregate() 메소드는 SQL의 SELECT 문과 동일하다.
  • MongoDB 집계 프레임워크는 데이터베이스의 일부로 추가 라이브러리나 프레임워크가 필요하지 않다.

(unionWith은 써본적이 없다..아직까지..)

Object Mappers

  • Object Mapper는 데이터베이스 테이블과 객체를 맵핑하는 코드 객체이다.
  • RDBMS 와 MongoDB 아키텍처 구조
  • MongoDB 같은 경우, 응용 프로그램과 데이터베이스 간의 기능이 드라이버로 더 많이 통합되어 있다.
  • RDBMS 경우, 객체 맵퍼를 사용하여 테이블의 데이터를 가져오며 해당 처리는 객체 맵퍼 레이어가 수행한다.
  • MongoDB 경우, 데이터가 애플리케이션에서 사용되는 개체 그대로 저장되는 경향이 있다.
    따라서 문서 자체가 객체에 직접 맵핑되는 경우가 많기 때문에 객체 맵핑이 자주 필요하지 않다.
  • 즉, MongoDB로 개발할 때에는 객체 맵퍼가 필요하지 않다.

Code Samples

실무에서는 보통 jpa를 통해 처리했다..!

출처 : https://learn.mongodb.com/learn/course/m100-mongodb-for-sql-pros/lesson-3-code-and-queries/learn?page=1

profile
Back-end Developer

0개의 댓글