इसमें गोता लगाते समय पहला बड़ा सवाल यह है कि "आप परिवर्तन कैसे संग्रहीत करना चाहते हैं" ?
- मुश्किल?
- संपूर्ण रिकॉर्ड प्रतियां?
मेरा व्यक्तिगत दृष्टिकोण अंतर को स्टोर करना होगा। क्योंकि इन अंतरों का प्रदर्शन वास्तव में एक विशेष क्रिया है, मैं अंतर को एक अलग "इतिहास" संग्रह में रखूंगा।
मैं मेमोरी स्पेस को बचाने के लिए विभिन्न संग्रह का उपयोग करूंगा। आप आम तौर पर एक साधारण प्रश्न के लिए पूर्ण इतिहास नहीं चाहते हैं। तो इतिहास को ऑब्जेक्ट से बाहर रखकर आप उस डेटा को पूछे जाने पर सामान्य रूप से एक्सेस की जाने वाली मेमोरी से भी बाहर रख सकते हैं।
अपने जीवन को आसान बनाने के लिए, मैं एक इतिहास दस्तावेज बनाऊंगा जिसमें समय-मुद्रित अंतर का एक शब्दकोश होगा। कुछ इस तरह:
{
_id : "id of address book record",
changes : {
1234567 : { "city" : "Omaha", "state" : "Nebraska" },
1234568 : { "city" : "Kansas City", "state" : "Missouri" }
}
}
अपने जीवन को वास्तव में आसान बनाने के लिए, मैं अपने डेटाऑब्जेक्ट्स (EntityWrapper, जो भी हो) का यह हिस्सा बनाऊंगा जिसका उपयोग मैं अपने डेटा तक पहुंचने के लिए करता हूं। आम तौर पर इन वस्तुओं का इतिहास का कोई न कोई रूप होता है, जिससे आप आसानी से save()
. को ओवरराइड कर सकते हैं एक ही समय में यह परिवर्तन करने का तरीका।
अद्यतन करें:2015-10
ऐसा लगता है कि अब JSON अंतर को संभालने के लिए एक युक्ति है। यह अंतर / परिवर्तनों को संग्रहीत करने का एक अधिक मजबूत तरीका लगता है।