[빅데이터시스템설계] mongoDB 구성

Future·2024년 4월 24일
0

mongoDB 구성

  • database : 말 그대로 데이터베이스 컨테이너이다. 내부에 컬렉션을 가진다.
  • collection : 관련성 있는 도큐먼트들이 모인 집합이다.
  • document : key-value들의 집합이다. 동적 스키마로, 정해진 구조가 없다.

document pattern

MongoDB는 정해진 조인이 없으므로, 데이터를 어떻게 쿼리하는지는 사용자에 달렸다.
여기에 어느정도 가이드를 제공하고 있다.

1 : 1 패턴

두 도큐먼트 간에 데이터가 1:1로 대응할 때

1 : N (N이 적을 때)

두 도큐먼트 간에 데이터가 1:N으로 대응하는데, N의 크기가 작을 때는 embed한다.

1 : N (N이 클 때)

두 도큐먼트 간에 데이터가 1:N으로 대응하는데, N의 크기가 클 때는 도큐먼트 전체를 embed하는게 아니라, N의 도큐먼트 id만 embed한다.

N : M

두 도큐먼트 간에 데이터가 N:M으로 대응할 때. 채팅방과 같은 상황이다.
이 경우, 한 도큐먼트에 다른 도큐먼트를 embed하는 방법과,

양쪽 모두에 embed하는 방법이 있다.

Tree

도큐먼트 사이에 계층관계가 있을 때. 속도가 빠르지만, 복잡성이 높아진다.

Dynamic Field

필요에 따라 동적으로 필드를 추가하는 패턴이다. 필드 key 대신 value를 저장하여 저장공간을 절약한다. 하지만 복잡도가 증가하여 조심해서 사용해야 한다.
-> coursename을 동적필드명으로 사용한 예시

profile
Record What I Learned

0개의 댓글