O módulo Mongoid::Versioning adiciona um campo denominado version do tipo Integer ao documento, esse campo registra a versão do documento atual, começando em 1, até o máximo (se definido). Além disso, você terá um documento incorporado "versões" que serão criadas. Há então um retorno de chamada before_save que cuida do controle de versão para você.
Geralmente eu recomendaria um máximo, mas isso é com você. Em termos de como chegar a eles, bem, você não deu um documento de exemplo, então vamos com um artigo muito simples como exemplo:
#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
Isso nos dará um documento mais ou menos assim:
{
"title": "Hello World",
"content": "Woo - content",
"comments": [
]
"version": 2
"versions": [
{ "title": "Hello World", "version": 1 }
]
}
Agora você só precisa usar seus mecanismos de busca padrão para chegar a ele:
post = Post.find(:first, :conditions => {:title => "Hello World"})
Pegue a versão mais recente e, em seguida, você pode pesquisar programaticamente por versões anteriores. Eu postaria a saída, mas não tenho uma amostra configurada no momento.
Da mesma forma, você só precisa executar db.namespace.find() com base nos campos title, version, se desejar fazê-lo através do shell.
Espero que isso faça sentido.