Modul Mongoid::Versioning přidá do dokumentu pole s názvem verze typu Integer, toto pole zaznamenává verzi aktuálního dokumentu, počínaje 1, až po maximum (pokud je definováno). Kromě toho budete mít vložený dokument "verze", který bude vytvořen. K dispozici je pak zpětné volání before_save, které se postará o verzování za vás.
Obecně bych doporučil maximum, ale to je na vás. Pokud jde o to, jak se k nim dostat, neuvedl jste vzorový dokument, takže pojďme s velmi jednoduchým článkem jako příklad:
#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
To nám dá dokument něco takového:
{
"title": "Hello World",
"content": "Woo - content",
"comments": [
]
"version": 2
"versions": [
{ "title": "Hello World", "version": 1 }
]
}
Nyní stačí použít své standardní vyhledávací mechanismy, abyste se k němu dostali:
post = Post.find(:first, :conditions => {:title => "Hello World"})
Získejte nejnovější verzi a poté můžete programově vyhledávat předchozí verze. Zveřejnil bych výstup, ale momentálně nemám nastavený vzorek.
Podobně stačí spustit db.namespace.find() na základě titulků, polí verze, pokud to chcete udělat přes shell.
Snad to dává smysl.