:delete: Delete the child documents.
:destroy: Destroy the child documents.
उत्तर
Mongoid (और भी ActiveRecord मेरा मानना है कि), delete
बस डेटाबेस से वस्तु को हटा देता है। destroy
ऑब्जेक्ट को हटा देगा और मॉडल द्वारा परिभाषित सभी उचित कॉलबैक चलाएगा। इसलिए यदि आपके पास मॉडल पर before_destroy
कॉलबैक है और आप delete
उस मॉडल का एक उदाहरण है, तो before_destroy
कॉलबैक नहीं कहा जाएगा।
तो dependent: :destroy
हटाते समय मॉडल के कॉलबैक चलाता है और dependent: :delete
नहीं करता है।
destroy
मॉडल कॉलबैक चलाता है और फिर डीबी को एक रिमूव क्वेरी बनाता है।delete
बस डीबी को एक रिमूव क्वेरी बनाता है।
नाम ActiveRecord
से लिया गया है, यही कारण है कि वे मोंगो से बहुत अच्छी तरह मेल नहीं खाते हैं।
destroy
पर ऑप्टिमाइज़ेशन के रूप में आप delete
देख सकते थे। जब आप destroy
का उपयोग करते हैं, तो आप सुनिश्चित करते हैं कि before_destroy
कॉलबैक निष्पादित किए गए हैं, इसलिए उचित सफाई की जाती है। दूसरी तरफ, यदि आप Model.destroy_all
जैसे कुछ करते हैं, तो उसे सभी तत्वों को लोड करना होगा, और फिर उनमें से प्रत्येक के लिए एक रिमूव क्वेरी बनाना होगा, चाहे Model.delete_all
केवल एक क्वेरी बनाता है।
- 1. रेल: निर्भर =>: नष्ट वी.एस.: निर्भर =>: delete_all
- 2. निर्भर ट्रिगर: ओवरराइड को नष्ट-विधि
- 3. has_many के साथ रिकॉर्ड को कैसे नष्ट करें,: निर्भर =>:
- 4. mongoid
- 5. Mongoid कहां मिल बनाम जब मापदंड
- 6. Mongoid: परिवर्तित संदर्भित/खुद संग्रह
- 7. Mongoid
- 8. mongoid
- 9. Mongoid स्थापना के बाद सक्रिय रिकॉर्ड जेनरेटर का उपयोग कर?
- 10. आश्रित टेम्पलेट्स पर निर्भर स्कोप
- 11. Mongoid
- 12. Mongoid
- 13. Mongoid
- 14. Mongoid
- 15. mongoid
- 16. में mongoid
- 17. mongoid
- 18. रेल: before_destroy कॉलबैक निष्क्रिय करने के लिए कैसे जब यह माता पिता की वजह से नष्ट किया जा रहा है को नष्ट कर दिया जा रहा है (: निर्भर =>: नष्ट)
- 19. Mongoid एसोसिएशन
- 20. उपयोग की तरह/mongoid
- 21. Mongoid और ActiveRecord जनरेटर
- 22. तालिका के लिए सभी रिकॉर्ड्स को कैसे नष्ट करें: अन्य तालिकाओं में निर्भर रिकॉर्ड
- 23. एक निर्भर बनावट क्या पढ़ा जाता है?
- 24. mongoid/मोपेड
- 25. का पता लगाएं और मोंगो में सभी को दूर/mongoid
- 26. Mongoid: ids
- 27. आश्रित बल निर्भर परियोजनाओं के पुनर्निर्माण (पहले निर्भरताएं बनाएं)
- 28. find_by_sql mongoid के बराबर है?
- 29. Mongoid और कैनकैन
- 30. एसोसिएशन के माध्यम से एसोसिएशन निर्भर है, जिसे
इसलिए यदि मेरे पास कोई कॉलबैक नहीं है तो वे वही बात हैं? –
हाँ, मैं शायद 'नष्ट' का उपयोग करने पर विचार करता हूं। यदि आप कभी भी कॉलबैक जोड़ते हैं, तो आपको इसे 'हटाएं' से 'नष्ट' करने के लिए याद रखना होगा जबतक कि आप वास्तव में कॉलबैक को चलाने के लिए नहीं चाहते हैं। –
नहीं, यदि आपके पास कॉलबैक नहीं है तो भी वे वही नहीं हैं। चूंकि 'नष्ट' कॉलबैक पर निर्भर है, इसलिए कॉलबैक निष्पादित करने के लिए इसे संबंधित दस्तावेज़ लोड करना होगा, और DELETE क्वेरी करें। 'हटाएं' सिर्फ एक DELETE क्वेरी बनाता है। फिर, नष्ट "सुरक्षित" है, लेकिन हटाएं "तेज़" है – tothemario