MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoid::Versioning - como verificar as versões anteriores?


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.