MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेवला दस्तावेज़ पर सादा वस्तु कास्ट करें

अपना उत्तर पोस्ट कर रहा हूं ताकि यह खुला न रहे:

संस्करण 4 मॉडल (2015-03-25 को जारी स्थिर) अब एक hydrate() तरीका। कोई भी फ़ील्ड गंदे . के रूप में चिह्नित नहीं किया जाएगा प्रारंभ में, जिसका अर्थ है save() . के लिए एक कॉल जब तक कोई फ़ील्ड उत्परिवर्तित नहीं हो जाता तब तक कुछ नहीं करेगा।

https://github.com/LearnBoost/mongoose /blob/41ea6010c4a84716aec7a5798c7c35ef21aa294f/lib/model.js#L1639-1657

यह नोट करना बहुत महत्वपूर्ण है कि इसका उपयोग डेटाबेस से लोड किए गए एक सादे JS ऑब्जेक्ट को एक नेवला दस्तावेज़ में बदलने के लिए किया जाता है। यदि आप किसी REST सेवा या ऐसा कुछ से कोई दस्तावेज़ प्राप्त कर रहे हैं, तो आपको findById() का उपयोग करना चाहिए और update() .

खतरनाक तरीके से जीने वालों के लिए:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. nextjs आयात करते हैं, लेकिन फ़ंक्शन का आह्वान नहीं करते हैं, मॉड्यूल नहीं मिला:त्रुटि:'dns' को हल नहीं कर सकता

  2. नेवले को मोंगोडीबी एटलस और नोडज से जोड़ना

  3. MongoDB का उपयोग करके सरणी तत्वों के आधार पर रिकॉर्ड कैसे समूहित करें

  4. कई मोंगो डीबी होस्ट से कनेक्ट करें और स्प्रिंग बूट में एक अलग डेटाबेस का उपयोग करके प्रमाणित करें

  5. लंबे प्रकार की संपत्ति के लिए BsonIgnoreIfDefault का उपयोग करने में असमर्थ