PyMongo के साथ .sort का उपयोग करना


109

PyMongo के साथ, जब मैं इस तरह से अपने 'नंबर' और 'डेट' फ़ील्ड्स द्वारा सॉर्ट की गई वस्तुओं को पुनः प्राप्त करने की कोशिश करता हूं:

db.test.find({"number": {"$gt": 1}}).sort({"number": 1, "date": -1})

मुझे यह त्रुटि मिली:

TypeError: if no direction is specified, key_or_list must be an instance of list

मेरी सॉर्ट क्वेरी में क्या गलत है?

जवाबों:


206

sort कुंजी-दिशा जोड़े की एक सूची होनी चाहिए, जो है

db.test.find({"number": {"$gt": 1}}).sort([("number", 1), ("date", -1)])

इसका कारण यह है कि एक सूची यह है कि dictपाइथन <3.6 में तर्कों के मामलों और एस के आदेश नहीं दिए गए हैं


29
कारण यह है कि यह पायथन में एक सूची है कि पायथन में sort()मामलों और डिकेट्स को तर्कों का आदेश नहीं दिया गया है।
एंड्रे लास्ज़लो

@ AndréLaszlo एक आदेश () का उपयोग किया जा सकता है?
zakdances

9
इसने मुझे एक टन अनुसंधान बचा लिया। लिटिल मोंगोबीडी बुक छँटनी के उदाहरणों में गुमराह करती है।
डोगुकन टुफेकसी २०'१३

4
यदि यह केवल एक क्षेत्र है, तो यह हो सकता है .sort ("_ id", 1)
हारिस एनपी

2
python3.6 + dicts में आदेश दिया जाता है, यदि कोई इसके लिए तैयार है, तो यह सामान्य मोंगोडेब सिंटैक्स के अनुरूप लाने के लिए पाइमोन्गो के लिए एक पुल अनुरोध के लायक हो सकता है। निश्चित रूप से पुराने अजगर संस्करणों पर pymongo चलाते समय यह काम नहीं करेगा ..
21
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.