Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

ドキュメントとスキーマのバージョン管理

項目一覧

  • ユースケース
  • タスク
  • 詳細

技術要件の変化を考慮して、時間の経過とともにスキーマを変更する必要がある場合があります。 スキーマが変更された場合でも、スキーマ設計パターンを使用して元のドキュメント構造を保持できます。 ドキュメントとスキーマの履歴バージョンを保持することで、パフォーマンスが集中するスキーマの移行やダウンタイムを回避できます。

データ要件が変更され、履歴データを元の形式で保持したい場合は、バージョン管理パターンを使用します。 バージョン管理パターンは、アプリケーションが次のいずれかの条件を満たしている場合に最も有効です。

  • アプリケーションのダウンタイムは移行のオプションではありません。

  • 新しいスキーマへのドキュメントの更新が完了するまでに、時間、数日、または数週間かかる場合があります。

  • ドキュメントを新しいスキーマに更新する必要はありません。

バージョン管理パターンは、データ移行の方法を決定し、表形式のデータベースと比較して柔軟性を高めるのに役立ちます。

バージョン管理パターンに関する次の特定のアプリケーションのユースケースを検討してください。

  • 保証会社は、顧客がポリシーを変更して追加項目を保証します。 顧客がポリシーを変更すると、保証会社は一定期間にわたるポリシーの変更を記録します。 会社ではドキュメント バージョン管理パターンを使用して、各アップデートを別々のドキュメントに保存してポリシーの変更を追跡しています。 過去のデータは別のコレクションに保存され、現在のデータに対するクエリには影響しません。

  • 会社が顧客の連絡先情報を保存しています。 元のスキーマでは、 homePhonecellPhoneemailなどのさまざまな接続方法は個々のフィールドに保存されます。 時間の経過とともに、 homePhone番号を持つカスタマーは少なくなるため、会社はスキーマを変更して連絡先情報を可変サブフィールドを持つ汎用のcontactsドキュメントに移動します。 スキーマの変更後、会社はスキーマ バージョン管理パターンを実装し、各ドキュメントをクエリする方法をアプリケーションに指示するschemaVersionフィールドを追加します。

ドキュメントとスキーマの変更の履歴を保持する方法については、次のページを参照してください。

  • ドキュメントのバージョンの履歴を保持する

  • 異なるスキーマ バージョンを維持する

戻る

継承パターン