MongoDB 데이터 구조
- 데이터베이스 - 여러 컬렉션을 포함하는 상위 개념
- 컬렉션 - 도큐먼트의 집합. RDBMS의 테이블
- 도큐먼트 - 실제 데이터가 저장되는 단위, RDBMS의 행에 해당. JSON형식임.
임베딩(Embedding) vs 참조(Referencing)
보통 임베딩은 관련 데이터가 함께 자주 조회되고 데이터 크기가 작을때, 참조는 데이터 중복을 피하고 독립적으로 해당 데이터를 다루려고 할때 사용함.
스키마 설계 패턴
매우 단순해진다….
- 일대일(One to One)
- 일대소수(One to Few) : 임베딩을 통해 한 도큐먼트에 관련 데이터 포함시킴
- 일대다수(One to Many) : 참조를 사용해 도큐먼트 분리, 필요해
$lookup
을 통해 조인
- 일대매우다수(One to Squillions) : 매우 많은 데이터가 있을때, 역참조(many-to-many를 의미하는듯?)나 별도 컬렉션으로 관리
스키마를 어떻게 유지하는가?
이건 시행착오를 거치면서 배워야 할듯