Mongoid ::Versioningモジュールは、整数型のversionという名前のフィールドをドキュメントに追加します。このフィールドには、現在のドキュメントのバージョンが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()を実行するだけで済みます。
うまくいけば、それは理にかなっています。