अपना उत्तर पोस्ट कर रहा हूं ताकि यह खुला न रहे:
संस्करण 4 मॉडल (2015-03-25 को जारी स्थिर) अब एक hydrate()
तरीका। कोई भी फ़ील्ड गंदे . के रूप में चिह्नित नहीं किया जाएगा प्रारंभ में, जिसका अर्थ है save()
. के लिए एक कॉल जब तक कोई फ़ील्ड उत्परिवर्तित नहीं हो जाता तब तक कुछ नहीं करेगा।
यह नोट करना बहुत महत्वपूर्ण है कि इसका उपयोग डेटाबेस से लोड किए गए एक सादे JS ऑब्जेक्ट को एक नेवला दस्तावेज़ में बदलने के लिए किया जाता है। यदि आप किसी REST सेवा या ऐसा कुछ से कोई दस्तावेज़ प्राप्त कर रहे हैं, तो आपको findById()
का उपयोग करना चाहिए और update()
.
खतरनाक तरीके से जीने वालों के लिए:
यदि आप वास्तव में डेटाबेस को छुए बिना किसी मौजूदा दस्तावेज़ को अपडेट करना चाहते हैं, तो मुझे लगता है कि आप hydrate()
. पर कॉल कर सकते हैं , फ़ील्ड को गंदा के रूप में चिह्नित करें, और फिर save()
. पर कॉल करें . यह doc.isNew = false;
सेट करने के तरीके से बहुत अलग नहीं है जैसा कि मैंने अपने मूल प्रश्न में सुझाव दिया था। हालांकि, वलेरी (नेवला टीम से) ने ऐसा नहीं करने का सुझाव दिया। यह सत्यापन त्रुटियों और अन्य किनारे के मामले के मुद्दों का कारण बन सकता है और आम तौर पर अच्छा अभ्यास नहीं होता है। findById वास्तव में तेज़ है और आपकी बाधा नहीं होगी।