Bisakah Anda membagikan pemikiran Anda bagaimana Anda mengimplementasikan versi data dalam MongoDB. (Saya sudah bertanya pertanyaan serupa tentang Cassandra . Jika Anda memiliki pemikiran yang mana db lebih baik untuk itu silakan berbagi)
Misalkan saya perlu membuat catatan versi dalam buku alamat yang sederhana. (Catatan buku alamat disimpan sebagai objek flat json). Saya berharap sejarah:
- akan jarang digunakan
- akan digunakan sekaligus untuk menyajikannya dalam mode "mesin waktu"
- tidak akan ada lebih dari beberapa ratus versi untuk satu catatan. sejarah tidak akan kedaluwarsa.
Saya sedang mempertimbangkan pendekatan berikut:
Buat koleksi objek baru untuk menyimpan sejarah catatan atau perubahan pada catatan. Itu akan menyimpan satu objek per versi dengan referensi ke entri buku alamat. Catatan tersebut akan terlihat sebagai berikut:
{ '_id': 'id baru', 'pengguna': user_id, 'timestamp': timestamp, 'address_book_id': 'id dari catatan buku alamat' 'old_record': {'first_name': 'Jon', 'last_name': 'Doe' ...} }
Pendekatan ini dapat dimodifikasi untuk menyimpan berbagai versi per dokumen. Tapi ini tampaknya pendekatan yang lebih lambat tanpa keuntungan apa pun.
Simpan versi sebagai objek serial (JSON) yang dilampirkan pada entri buku alamat. Saya tidak yakin bagaimana cara melampirkan objek tersebut ke dokumen MongoDB. Mungkin sebagai array string. ( Dimodelkan setelah Versi Dokumen Sederhana dengan CouchDB )