MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoid::Versioning - comment vérifier les versions précédentes ?

Le module Mongoid::Versioning ajoute un champ nommé version de type Integer au document, ce champ enregistre la version du document actuel, en commençant à 1, jusqu'au maximum (si défini). De plus vous aurez un document embarqué "versions" qui sera créé. Il y a ensuite un callback before_save qui s'occupe du versioning pour vous.

Généralement, je recommanderais un maximum, mais cela dépend de vous. Pour ce qui est de savoir comment y accéder, vous n'avez pas donné d'exemple de document, alors allons-y avec un article très simple comme exemple :

#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

Cela nous donnera un document comme celui-ci :

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

Il ne vous reste plus qu'à utiliser vos mécanismes de recherche standard pour y accéder :

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

Récupérez la dernière version de celle-ci, puis vous pourrez rechercher par programme les versions précédentes. Je publierais la sortie, mais je n'ai pas d'échantillon configuré pour le moment.

De même, vous n'avez qu'à exécuter db.namespace.find() en fonction des champs de titre et de version si vous souhaitez le faire via le shell.

J'espère que cela a du sens.