MongoDB
- NoSQL DB, 도큐멘트를 사용, 컬렉션에 저장, DB는 컬렉션들로 구성됨
- 비구조적인 자유로운 형태의, 대용량의 데이터
- 확장이 쉽고, 수평적 확장
- 빠르게 구축이 가능, 데이터 구조도 유연하여 자주 업데이트할 경우에 유리
- Atlas Cloud를 이용
- GUI와 CLI로 데이터 시각화, 분석, 내보내기, 빌드에 사용
- 클러스터를 이용해 배포
- 클러스터 배포
- 클러스터: 인스턴스들의 모임, 하나의 시스템으로 작동
- 인스턴스: 특정 소프트웨어를 실행하는 로컬 또는 클라우드 단일 머신
- 레플리카 세트: 단일 클러스터에서 각각의 인스턴스는 동일한 복제본을 가지고 있고, 이를 지칭함
- 도큐먼트: 필드-값 쌍으로 저장된 데이터
- 필드: 데이터 포인트 식별자
- 값: 식별자와 연결된 데이터
- 컬렉션: 도큐먼트로 구성된 저장소
- JSON: 사람이 보기 편한 형태, 출력 시 사용
- BSON: 효율적 저장을 위한 형태, 다양한 데이터 타입 사용, 빠르고 가볍고 유연한 구조, 이진법 기반
- JSON
- BSON
- CREATE
- show collections
- db.컬렉션이름.insert()
- db.컬렉션이름.find()
- id 값이 생략되면 자동 생성, id가 다르면 같은 필드-값 이라도 다른 도큐먼트로 인식
- ordered 옵션을 통해 순차적 데이터 입력 유무를 선택, 중간에 에러가 나면 입력이 중단되게끔
- READ
- show dbs
- db.컬렉션이름.find().count()
- db.컬렉션이름.find()
- cursor.pretty() - cursor는 find 메소드를 실행해서 얻어낸 결과의 집합
- db.컬렉션이름.findOne()
- UPDATE
- db.컬렉션이름.updateOne()
- db.컬렉션이름.updateMany()
- 연산자
- DELETE
- db.컬렉션이름.deleteOne()
- db.컬렉션이름.deleteMany()
- db.컬렉션이름.drop()
- 연산자
- 비교연산자
- eq,gt,gte,ne,lt,lte
- 논리연산자
- and,or,nor,not
- 표현연산자
- 배열연산자
- 배열연산자와 projection
- $elemMatch(projection), $elemMatch(query), $regex
- Aggregation Framwork
- MongoDB에서 파이프라인에 따라 데이터를 처리
- $match, $group, $project