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

Mongoid::Versionering - hvordan tjekker man tidligere versioner?

Mongoid::Versioning-modulet tilføjer et felt med navnet version af typen Integer til dokumentet, det felt registrerer versionen af ​​det aktuelle dokument, startende ved 1, op til maksimum (hvis defineret). Derudover vil du have et indlejret dokument "versioner", der vil blive oprettet. Der er så et before_save-tilbagekald, som tager sig af versioneringen for dig.

Generelt vil jeg anbefale et maksimum, men det er op til dig. Med hensyn til, hvordan man kommer til dem, så gav du ikke et eksempeldokument, så lad os tage en meget simpel artikel som eksempel:

#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

Det vil give os et dokument noget som dette:

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

Nu skal du bare bruge dine standardfindingsmekanismer for at komme til det:

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

Tag den nyeste version ud af det, og så kan du programmæssigt søge efter tidligere versioner. Jeg ville sende output, men jeg har ikke en prøve sat op i øjeblikket.

På samme måde behøver du kun køre db.namespace.find() baseret på titel-, versionsfelterne, hvis du ønsker at gøre det via shellen.

Forhåbentlig giver det mening.




  1. så din HBase er i stykker

  2. mongoexport med parametre + node.js + underordnet proces

  3. MongoDB:Bruger match med inputdokumentvariabler

  4. kan ikke hente data fra databasen efter flere skemaer erklæret (mongoose + express + mongodb