Achievement Goals
NoSQL의 장점 및 특징에 대해서 이해 할 수 있다.
MongoDB의 도큐먼트(Document)와 컬렉션(Collection)에 대해 이해할 수 있다.
JSON과 BSON의 차이점을 이해하고, 도큐먼트를 가져오거나 내보낼 수 있다.
MongoDB의 Atlas에 대해 이해할 수 있다
클러스터(Cluster)와 레플리카 세트(Replica set)에 대해 이해할 수 있다.
Atlas를 GUI(Graphical User Interface)와 shell 쿼리문으로 사용할 수 있다.
MongoDB에서 CRUD를 할 수 있다.
Insert, Find, Update, Delete에 대한 쿼리문을 작성 할 수 있다.
연산자와 프로젝션(Projection)을 사용 할 수 있다.
배열과 서브 도큐먼트를 쿼리할 수 있다.
Aggregation Framework를 사용하여 aggregate 명령어로 쿼리할 수 있다.
$match, $project, $group 연산자를 사용할 수 있다.
데이터를 도큐먼트의 형태로 저장-> 도큐먼트는 컬렉션에 저장됨
1. 비구조적인 대용량의 데이터를 저장하는 경우
2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
3. 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우
객체와 같이 데이터를 필드-값 쌍(Field - Value pair)으로 저장하고 구성
필드(field) :
데이터의 고유한 식별자
값(value) :
주어진 식별자와 관련된 데이터
컬렉션(Collection) :
MongoDB의 도큐먼트로 구성된 저장소
일반적으로 도큐먼트 간의 공통 필드가 있다.
데이터베이스 당 여러개의 컬렉션이 있고, 컬렉션 당 여러개의 도큐먼트가 있을 수 있다
MongoDB에서는 아틀라스(Atlas)로 클라우드에 데이터베이스를 설정
레플리카 세트
동일한 데이터를 저장하는 소수의 연결된 머신은 그 중 하나에 문제가 발생하더라도, 데이터를 그대로 유지합니다.
인스턴스
로컬 또는 클라우드에서 특정 소프트웨어를 실행하는 단일 머신, MongoDB에서는 데이터베이스입니다.
클러스터
데이터를 저장하는 서버 그룹
읽기 쉽고, 많은 개발자들이 사용하기 편리
->데이터를 저장하는 좋은 방법 중 하나
but 텍스트 형식이기 때문에 읽기 쉽지만, 파싱이 느리고 메모리 사용이 비효율적
그리고 JSON은 기본 데이터 타입만을 지원하기 때문에, 사용 할 수 있는 데이터 타입에 제약
컴퓨터의 언어에 가까운 이진법에 기반을 둔 표현법
JSON 보다 메모리 사용이 효율적이며 빠르고, 가볍고, 유연
더 많은 데이터 타입을 사용 가능
MongoDB의 데이터는 BSON의 형태로 저장이 되고, 보통 읽기 쉬운 JSON의 형태로 출력
JSON 형식으로 데이터를 가져오고 내보내기 위한 명령어
mongoimport
mongoexport
BSON 형식으로 가져오고 내보내기 위한 명령어
mongorestore
mongodump
이를 사용하기 위해 Atlas Cluster URI가 필요