MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoid::Versioning - come controllare le versioni precedenti?

Il modulo Mongoid::Versioning aggiunge al documento un campo denominato version di tipo Integer, quel campo registra la versione del documento corrente, a partire da 1, fino al massimo (se definito). Inoltre avrai una "versione" del documento incorporata che verrà creata. C'è quindi un callback before_save che si occupa del controllo delle versioni per te.

In genere consiglierei un massimo, ma dipende da te. In termini di come ottenerli, beh non hai fornito un documento di esempio, quindi andiamo con un articolo molto semplice come esempio:

#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

Questo ci darà un documento simile a questo:

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

Ora devi solo usare i tuoi meccanismi di ricerca standard per arrivarci:

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

Prendi l'ultima versione e poi puoi cercare a livello di codice le versioni precedenti. Pubblicherei l'output, ma al momento non ho un campione impostato.

Allo stesso modo devi solo eseguire db.namespace.find() in base al titolo, ai campi della versione se desideri farlo tramite la shell.

Si spera che abbia senso.