के ऐरे के माध्यम से खोजें मै मैड्रिडस के माध्यम से कई आईडी प्राप्त कर लिया है। मैं कुछ मापदंडों के आधार पर उन आईडी हल कर लिया है और अब मैं इस विशेष क्रम में उन वस्तुओं को पाने के लिए की जरूरत है:Mongoid: ids
MyModel.find(ids)
है न? लेकिन ऑब्जेक्ट्स ऑर्डर नहीं करता है ऑर्डर में नहीं है। ऐसा लगता है कि यह सिर्फ एक ही
रूपMyModel.where(:_id.in => ids)
जो संग्रहीत आईडी के रूप में सिर्फ एक ही क्रम में लाई गई वस्तुओं को वापस नहीं होगा।
अब मैं इस
ids.map{|id| MyModel.find(id)}
जो काम करेगा कर सकते हैं, लेकिन यह डेटाबेस कई कई बार दस्तक देगा।
क्या यह तेजी से प्रत्येक आइटम को डीबी से ला रहा है? – fl00r
@ fl00r: यह वांछित क्रम में चीजों को प्राप्त करने के लिए मॉडल और एक साधारण प्रकार (श्वार्टज़ियन ट्रांसफॉर्म में निर्मित के साथ) लाने के लिए केवल एक मोंगोडीबी पहुंच होना चाहिए। डाटाबेस का उपयोग आमतौर पर महंगा हिस्सा होता है। इसे बेंचमार्क करने का प्रयास करें, वास्तविक डेटा तक पहुंच के बिना कुछ भी गारंटी देना मुश्किल है। –
@muistooshort, मुझे एक समान समस्या का सामना करना पड़ रहा है। आम तौर पर, क्या यह सच है कि डीबी हिट को कम करने के लिए यह बेहतर अभ्यास होगा? –