Mongoid::Versioning मॉड्यूल दस्तावेज़ में इंटीजर प्रकार के संस्करण नामक एक फ़ील्ड जोड़ता है, वह फ़ील्ड वर्तमान दस्तावेज़ के संस्करण को रिकॉर्ड करता है, 1 से शुरू होकर अधिकतम (यदि परिभाषित किया गया है)। इसके अतिरिक्त आपके पास एक एम्बेडेड दस्तावेज़ "संस्करण" होगा जो बनाया जाएगा। इसके बाद पहले_सेव कॉलबैक होता है जो आपके लिए वर्जनिंग का ख्याल रखता है।
आम तौर पर मैं अधिकतम अनुशंसा करता हूं, लेकिन यह आप पर निर्भर है। उन तक पहुंचने के तरीके के संदर्भ में, आपने एक उदाहरण दस्तावेज़ नहीं दिया, तो चलिए एक उदाहरण के रूप में एक बहुत ही सरल लेख के साथ चलते हैं:
#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() चलाने की आवश्यकता है।
उम्मीद है कि यह समझ में आता है।