sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoid::Versioning:¿cómo comprobar las versiones anteriores?

El módulo Mongoid::Versioning agrega un campo llamado versión de tipo Integer al documento, ese campo registra la versión del documento actual, comenzando en 1, hasta el máximo (si está definido). Además tendrá un documento incrustado de "versiones" que se crearán. Luego hay una devolución de llamada before_save que se encarga del control de versiones por usted.

En general, recomendaría un máximo, pero eso depende de usted. En términos de cómo llegar a ellos, bueno, no diste un documento de ejemplo, así que vamos con un artículo muy simple como ejemplo:

#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

Eso nos dará un documento como este:

{
  "title": "Hello World",
  "content": "Woo - content",
  "comments": [
  ]
  "version": 2
  "versions": [
    { "title": "Hello World", "version": 1 }
  ]
}

Ahora solo necesita usar sus mecanismos de búsqueda estándar para llegar a él:

post = Post.find(:first, :conditions => {:title => "Hello World"})

Tome la última versión de eso, y luego puede buscar mediante programación las versiones anteriores. Publicaría la salida, pero no tengo una muestra configurada en este momento.

Del mismo modo, solo necesita ejecutar db.namespace.find() según el título, los campos de versión si desea hacerlo a través del shell.

Esperemos que eso tenga sentido.