2012-01-28 83 views
2

我在我的基於Mongoid的類中包含了Mongoid :: Versioning模塊。檢查文檔的以前版本或化身的最佳方法是什麼?我希望能夠看到它的歷史。這可以通過rails console或MongoDB shell。什麼是查看文檔歷史記錄最簡單的方法?Mongoid ::版本控制 - 如何檢查以前的版本?

回答

7

Mongoid :: Versioning模塊將一個名爲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"}) 

下載最新版本出來的那個,然後你可以以編程方式搜索以前的版本。我會發布輸出,但我目前沒有設置示例。

類似地,如果您希望通過shell執行操作,則只需根據標題,版本字段運行db.namespace.find()。

希望這是有道理的。