몽고DB : 관계형 데이터베이스(mySQL같은거) ❎ / 도큐먼트 지향 데이터베이스 🅾️
관계형 모델을 사용하지 않는 주된 이유 = 분산 확장을 쉽게 하기 위해
행 개념 대신 도큐먼트를 사용함
도큐먼트 지향 모델을 사용함으로써 복잡한 계층 관계를 하나의 레코드로 표현 가능
도큐먼트의 키와 값을 미리 정의하지 않음 → 고정된 스키마 ❎ → 필요할 때마다 필드 추가/제거
⇒ 개발 속도 상향 + 모델 실험 쉬움 → 여러 모델 시도 후 최선의 모델 선택 가능
범용 데이터베이스이기 때문에 데이터 생성, 읽기, 변경, 삭제 외에도 데이터베이스 관리 시스템(DBMS)의 대부분의 기능 + 인덱싱, 집계, 특수한 컬렉션 유형, 파일 스토리지를 제공함
관계형 데이터베이스의 일부 기능, **조인(join)**은 존재하지 않음
$lookup
연산자로 매우 제한된 방식의 조인 지원몽고DB 데이터의 기본 단위는 도큐먼트이다
모든 도큐먼트는 컬렉션 내에서 고유한 특수키인 _id
를 가진다
도큐먼트이 키는 문자열이다
\\0
를 포함하지 않음 키의 끝을 나타낼 때 사용.
, $
는 특정 상황에서만 사용한다 / 보통 예약어로 취급하고 잘못 사용하면 드라이버에서 경고 발생데이터형과 대소문자를 구분한다
{”count” : 5} 와 {”count” : “5} 는 다르다
키가 중복될 수 없다