यहां मूल समस्या यह है कि पर्ल में "हैश" को डिफ़ॉल्ट रूप से "कुंजी" द्वारा आदेश दिया जाता है। "सम्मिलन का क्रम" प्राप्त करने के लिए आपको Tie::IxHash<का उपयोग करना होगा /कोड>
इस प्रकार है:
use Tie::IxHash;
my %sort;
tie ( %sort, 'Tie::IxHash' );
my $sort = \%sort;
$sort = { "is_instock" => -1, "ua" => 1 };
फिर जब आप इसे अपने MongoDB क्वेरी में उपयोग करते हैं, तो कुंजियों को उनके शाब्दिक क्रम के बजाय आपके द्वारा सम्मिलित किए गए क्रम में माना जाता है।
यह किसी भी तरह से आदेश दिया जाना चाहिए था क्योंकि चाबियाँ शाब्दिक क्रम में हैं, लेकिन मेरा सुझाव है कि आपने कुछ गलत किया है और आपको वैसे भी सम्मिलन आदेश के बारे में पता होना चाहिए।
अन्यथा कारण यह है कि "in_stock" मौजूद नहीं है, या फ़ील्ड का सही पथ नाम नहीं है। आपको "dot notation"<के साथ फ़ील्ड का पूरा पथ निर्दिष्ट करने की आवश्यकता है। /ए> अन्यथा पथ अमान्य है।