मैं आरएसपीईसी का उपयोग करके जोर देने की कोशिश कर रहा हूं, कि दिए गए मोंगोइड क्वेरी रिकॉर्ड लोड नहीं करें, बस इसके अस्तित्व की जांच करें, क्योंकि रिकॉर्ड बड़ा है (कई एमबी), और कोड को केवल यह पता होना चाहिए कि क्या या रिकॉर्ड मौजूद नहीं है।मैंगॉयड उत्पन्न करने वाले प्रकार के प्रकार का परीक्षण कैसे कर सकता हूं?
मैं .exists?
संघों पर के साथ खेल रहा है, लेकिन कुछ कारण यह है कि has_one
जैसे के साथ काम करने के लिए प्रतीत नहीं होता:
class Profile
include Mongoid::Document
has_one :chart
end
class Chart # this is heavy
include Mongoid::Document
belongs_to :profile
end
profile.chart.exists? # fails if chart returns nil
exists?
प्रॉक्सी विधि जाहिरा तौर पर has_one
संबंधों के लिए काम नहीं करता है; हालांकि यह has_many
के लिए प्रलेखित है। मैं अपना खुद का शिल्प बनाना चाहता हूं, लेकिन मुझे आरएसपीईसी में परीक्षण करने की ज़रूरत है कि वास्तव में रिकॉर्ड केवल लोड नहीं किया गया है। मैं मोंगो ड्राइवर को उत्पन्न अंतर्निहित क्वेरी के परीक्षण की तरह कुछ करने के बारे में सोच रहा हूं, जैसे आप .to_sql
के साथ कर सकते हैं। क्या कोई संबंधित मोंगोइड विधि है?
आप शायद मोंगोइड के हिस्से को रोकना चाहते हैं जो किसी दस्तावेज़ में बीएसओएन प्रतिक्रिया के परिवर्तन को संभालता है, फिर सुनिश्चित करें कि इसे नहीं कहा जाता है। –
मेरे लिए एक कोड स्निपेट मिला? मैं अरेल में .to_sql के समान कुछ के लिए उम्मीद कर रहा था। मुझे यकीन है कि यह मोपेड में कहीं गहराई से है। –
मैं मोंगोइड/मोपेड को अच्छी तरह से नहीं जानता, दुर्भाग्य से (मैं मोंगोमैपर को बनाए रखता हूं)। यदि आप एक to_sql समकक्ष चाहते हैं, तो आप दस्तावेज़ में परिवर्तित होने से पहले अपने 'Mongoid :: मानदंड' को देखना चाहते हैं। मानदंड वास्तव में एक प्रश्न के रूप में चलाने से पहले इस पर चाल आपके हाथ मिल जाएगी। –