Modul Mongoid::Versioning menambahkan bidang bernama versi tipe Integer ke dokumen, bidang itu mencatat versi dokumen saat ini, mulai dari 1, hingga maksimum (jika ditentukan). Selain itu Anda akan memiliki "versi" dokumen tertanam yang akan dibuat. Kemudian ada panggilan balik before_save yang menangani pembuatan versi untuk Anda.
Umumnya saya akan merekomendasikan maksimal, tapi itu terserah Anda. Dalam hal bagaimana mendapatkannya, Anda tidak memberikan contoh dokumen, jadi mari kita pergi dengan artikel yang sangat sederhana sebagai contoh:
#Make an empty post, just a title, version 1
post = Post.create(:title => "Hello World")
# Now add some "content" and save, version 2
post.content = "Woo - content"
post.save
Itu akan memberi kita dokumen seperti ini:
{
"title": "Hello World",
"content": "Woo - content",
"comments": [
]
"version": 2
"versions": [
{ "title": "Hello World", "version": 1 }
]
}
Sekarang Anda hanya perlu menggunakan mekanisme pencarian standar untuk mendapatkannya:
post = Post.find(:first, :conditions => {:title => "Hello World"})
Ambil versi terbaru dari itu, dan kemudian Anda dapat mencari versi sebelumnya secara terprogram. Saya akan memposting output, tetapi saya tidak memiliki sampel yang disiapkan saat ini.
Demikian pula Anda hanya perlu menjalankan db.namespace.find() berdasarkan judul, bidang versi jika Anda ingin melakukannya melalui shell.
Semoga itu masuk akal.