시간이 지남에 따라 변화하는 기술 요구 사항을 고려하여 스키마를 변경해야 할 수도 있습니다. 스키마가 변경되면 스키마 디자인 패턴을 사용하여 원래 문서 구조를 유지할 수 있습니다. 문서와 스키마의 이전 버전을 유지하면 성능 집약적인 스키마 마이그레이션과 다운타임을 피할 수 있습니다.
사용 사례
데이터 요구 사항이 변경되고 기록 데이터를 원래 형식으로 유지하려는 경우 버전 관리 패턴을 사용합니다. 버전 관리 패턴은 애플리케이션 이 다음 조건 중 하나를 충족할 때 가장 유용합니다.
애플리케이션 다운타임은 마이그레이션 옵션이 아닙니다.
문서를 새 스키마 로 업데이트하는 데 몇 시간, 며칠 또는 몇 주가 걸릴 수 있습니다.
문서를 새 스키마 로 업데이트할 필요는 없습니다.
버전 관리 패턴은 데이터 마이그레이션 방식을 결정하는 데 도움이 되며 테이블 형식 데이터베이스에 비해 더 많은 유연성을 제공합니다.
버전 관리 패턴에 대해 다음과 같은 특정 애플리케이션 사용 사례를 고려하세요.
보험 회사는 고객이 추가 항목을 보장하기 위해 정책을 수정할 수 있도록 허용합니다. 고객이 정책을 변경하면 보험 회사는 시간이 지남에 따라 정책 변경 기록을 보관합니다. 회사는 문서 버전 관리 패턴을 사용하여 각 업데이트를 별도의 문서에 저장하여 정책 개정 사항을 추적합니다. 기록 데이터는 별도의 컬렉션에 저장되며 현재 데이터에 대한 쿼리에 영향을 주지 않습니다.
회사는 고객 연락처 정보를 저장합니다. 원래 스키마에서는
homePhone,cellPhone및email과 같은 다양한 문의 메서드가 개별 필드에 저장됩니다. 시간이 지남에 따라homePhone번호를 사용하는 고객이 줄어들고 있으므로 회사는 연락처 정보를 가변 하위 필드가 있는 일반contacts문서로 이동하도록 스키마를 수정합니다. 스키마 변경 후 회사는 스키마 버전 관리 패턴을 구현하고schemaVersion필드를 추가하여 애플리케이션에 각 문서를 쿼리하는 방법을 알려줍니다.
작업
문서 및 스키마 변경 기록을 보관하는 방법을 알아보려면 다음 페이지를 참조하세요.