ドキュメントとスキーマのバージョン管理
技術要件の変化を考慮して、時間の経過とともにスキーマを変更する必要がある場合があります。 スキーマが変更された場合でも、スキーマ設計パターンを使用して元のドキュメント構造を保持できます。 ドキュメントとスキーマの履歴バージョンを保持することで、パフォーマンスが集中するスキーマの移行やダウンタイムを回避できます。
ユースケース
データ要件が変更され、履歴データを元の形式で保持したい場合は、バージョン管理パターンを使用します。 バージョン管理パターンは、アプリケーションが次のいずれかの条件を満たしている場合に最も有効です。
アプリケーションのダウンタイムは移行のオプションではありません。
新しいスキーマへのドキュメントの更新が完了するまでに、時間、数日、または数週間かかる場合があります。
ドキュメントを新しいスキーマに更新する必要はありません。
バージョン管理パターンは、データ移行の方法を決定し、表形式のデータベースと比較して柔軟性を高めるのに役立ちます。
バージョン管理パターンに関する次の特定のアプリケーションのユースケースを検討してください。
保証会社は、顧客がポリシーを変更して追加項目を保証します。 顧客がポリシーを変更すると、保証会社は一定期間にわたるポリシーの変更を記録します。 会社ではドキュメント バージョン管理パターンを使用して、各アップデートを別々のドキュメントに保存してポリシーの変更を追跡しています。 過去のデータは別のコレクションに保存され、現在のデータに対するクエリには影響しません。
会社が顧客の連絡先情報を保存しています。 元のスキーマでは、
homePhone
、cellPhone
、email
などのさまざまな接続方法は個々のフィールドに保存されます。 時間の経過とともに、homePhone
番号を持つカスタマーは少なくなるため、会社はスキーマを変更して連絡先情報を可変サブフィールドを持つ汎用のcontacts
ドキュメントに移動します。 スキーマの変更後、会社はスキーマ バージョン管理パターンを実装し、各ドキュメントをクエリする方法をアプリケーションに指示するschemaVersion
フィールドを追加します。
タスク
ドキュメントとスキーマの変更の履歴を保持する方法については、次のページを参照してください。