Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

디자인 패턴 적용

이 페이지의 내용

  • 이 작업에 대하여
  • 예시
  • 영화 collection
  • 극장 collection
  • 자세히 알아보기

스키마 설계 패턴은 애플리케이션의 액세스 패턴에 맞게 Realm 데이터 모델을 최적화하는 방법입니다. 애플리케이션 성능을 향상시키고 스키마 복잡성을 줄입니다. 스키마 설계 패턴은 데이터가 저장되는 방식과 애플리케이션에 반환되는 데이터에 영향을 줍니다.

스키마 설계 패턴 및 예시 목록은 패턴으로 구축 MongoDB Blog 시리즈를 참조하세요.

스키마 설계 패턴을 구현하기 전에 해결하려는 문제를 고려하십시오. 각 스키마 설계 패턴에는 데이터 일관성, 성능 및 복잡성에 대한 사용 사례와 장단점이 있습니다. 예를 들어, 일부 스키마 설계 패턴은 쓰기 성능을 향상시키고 다른 패턴은 읽기 성능을 향상시킵니다.

애플리케이션과 필요한 데이터를 이해하지 않고 패턴을 구현하면 애플리케이션 성능이 저하되고 스키마 설계가 불필요하게 복잡해질 수 있습니다.

영화관 프랜차이즈에서 사용하는 다음 예제 패턴을 가정해 보겠습니다.

  • 스키마 에는 movie 컬렉션 과 theater 컬렉션 이 포함되어 있습니다. 스키마 는 하위 집합 패턴 을 사용하여 theater 컬렉션 의 movie 컬렉션 에서 정보의 하위 집합을 복제합니다. 서브세트 패턴 은 애플리케이션 으로 반환되는 문서의 크기를 줄이고 읽기 성능을 향상시킵니다.

  • 컬렉션 에는 계산된 패턴 을 사용하여 영화가 상영되는 모든 극장에서 고객이 영화를 본 횟수의 실행 합계를 계산하는 필드 movie total_views 가 포함되어 있습니다.

db.movie.insertOne(
{
_id: 1,
title: "Titanic",
year: 1997,
director: "James Cameron",
runtime: 194,
distributor: "Paramount Pictures",
languages: [ "English" ],
total_views: 3500
}
)
db.theater.insertMany(
[
{
name: "Downtown Cinemas",
address: {
street: "2212 Taylor Street",
state: "NY"
},
movies: [
{
movie_id: 1,
title: "Titanic",
runtime: 194,
views: 1500
}
]
},
{
name: "Midtown Theater",
address: {
street: "1232 5th Street",
state: "NY"
},
movies: [
{
movie_id: 1,
title: "Titanic",
runtime: 194,
views: 2000
}
]
}
]
)

돌아가기

맵 관계