sql >> Database >  >> NoSQL >> MongoDB

Mongoid::Versiebeheer - hoe controleer ik eerdere versies?

De Mongoid::Versioning-module voegt een veld met de naam versie van het type Integer toe aan het document, dat veld registreert de versie van het huidige document, beginnend bij 1, tot het maximum (indien gedefinieerd). Daarnaast heb je een ingesloten document "versies" die zullen worden gemaakt. Er is dan een before_save callback die de versiebeheer voor u regelt.

Over het algemeen zou ik een maximum aanraden, maar dat is aan jou. In termen van hoe je ze kunt bereiken, wel, je hebt geen voorbeelddocument gegeven, dus laten we een heel eenvoudig artikel als voorbeeld nemen:

#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

Dat geeft ons een document zoals dit:

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

Nu hoef je alleen maar je standaard zoekmechanismen te gebruiken om er te komen:

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

Pak daar de nieuwste versie uit en dan kun je programmatisch zoeken naar eerdere versies. Ik zou output posten, maar ik heb op dit moment geen voorbeeld opgezet.

Op dezelfde manier hoeft u alleen db.namespace.find() uit te voeren op basis van de titel, versievelden als u dit via de shell wilt doen.

Hopelijk is dat logisch.




  1. verwijder een ingesloten document in mongoid

  2. Kan module '../build/Release/bson'] niet vinden code:'MODULE_NOT_FOUND' } js-bson:kan c++ bson-extensie niet laden, met pure JS-versie

  3. Documentgrootte in MongoDb

  4. Zoek element op basis van twee waarden