Модуль Mongoid :: Versioning добавляет в документ поле с именем version типа Integer, в котором записывается версия текущего документа, начиная с 1, до максимальной (если она определена).Кроме того, у вас будет встроенный документ «версии», который будет создан.Затем существует обратный вызов before_save, который позаботится о создании версий для вас.
Обычно я бы рекомендовал максимум, но это зависит от вас.С точки зрения того, как их получить, ну, вы не дали пример документа, поэтому давайте рассмотрим очень простую статью в качестве примера:
#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
Это даст нам документ примерно так:
{
"title": "Hello World",
"content": "Woo - content",
"comments": [
]
"version": 2
"versions": [
{ "title": "Hello World", "version": 1 }
]
}
Теперь вам просто нужно использовать стандартные механизмы поиска, чтобы добраться до него:
post = Post.find(:first, :conditions => {:title => "Hello World"})
Извлечь из этого самую последнюю версию, а затем вы можете программно искать предыдущие версии,Я бы опубликовал вывод, но в данный момент у меня нет сэмпла.
Точно так же вам нужно только запустить db.namespace.find () на основе полей title, version, если вы хотите это сделать.через оболочку.
Надеюсь, это имеет смысл.