MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoid::Wersjonowanie - jak sprawdzić poprzednie wersje?

Moduł Mongoid::Versioning dodaje do dokumentu pole o nazwie wersja typu Integer, które rejestruje wersję bieżącego dokumentu, zaczynając od 1, aż do maksimum (jeśli jest zdefiniowane). Ponadto będziesz mieć wbudowane „wersje” dokumentu, które zostaną utworzone. Następnie istnieje wywołanie zwrotne before_save, które zajmuje się wersjonowaniem za Ciebie.

Generalnie polecam maksymalnie, ale to zależy od Ciebie. Jeśli chodzi o to, jak się do nich dostać, cóż, nie podałeś przykładowego dokumentu, więc przejdźmy do bardzo prostego artykułu jako przykładu:

#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

To da nam dokument podobny do tego:

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

Teraz wystarczy użyć standardowych mechanizmów wyszukiwania, aby się do niego dostać:

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

Pobierz z tego najnowszą wersję, a następnie możesz programowo wyszukiwać poprzednie wersje. Opublikowałbym wyniki, ale w tej chwili nie mam skonfigurowanej próbki.

Podobnie wystarczy uruchomić db.namespace.find() w oparciu o tytuł, pola wersji, jeśli chcesz to zrobić za pośrednictwem powłoki.

Mam nadzieję, że to ma sens.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak poradzić sobie z przypadkowym hashem zwróconym z mongo in go (przy użyciu mgo)?

  2. Dopasowywanie ObjectId do String dla $graphLookup

  3. Nowa funkcja agregacji ze sterownikiem Mongo 3.2 przy użyciu Java

  4. Jak grupować dokumenty z określonym polem w agregacji mongodb

  5. Jak używać $elemMatch do projekcji agregatu?