パスワードを忘れた? アカウント作成
318139 journal

yosshyの日記: mongodbでデータバージョニング

日記 by yosshy

DBのデータを更新する際、データを上書きせずに別データとして保存する事をバージョニングという。
リレーショナルDBなら珍しくもない手法だが、ドキュメントDBのmongodbではどうだろうか?

mongodbの各ドキュメント(リレーショナルDBのレコードに相当)には_idというフィールドが必ず付与される。このフィールドを使うか使わないかで話が変わってくる。

●_idをドキュメントIDとして使う場合
•1ドキュメントのデータ集合をドキュメント内で配列化する。

●_idをドキュメントIDとして使わない場合
•ドキュメント作成時、_idとは別のIDを作成
•ドキュメント更新時、次のドキュメントにオリジナルのドキュメントのID値と更新時刻を保存する。ドキュメント保存後、

  1. オリジナルドキュメントとその更新ドキュメントを検索し、
  2. 更新時刻逆順にソートし、
  3. 2つ目以降のドキュメントに旧式化フラグ付与

  一長一短だが、ケースバイケースだろう。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...