2011-02-09 12 views
6
results = docDB.posts.find({"active":True }).sort("pop_score", pymongo.DESCENDING) 

यह मेरी तरह है। लेकिन समस्या यह है कि कुछ चीजों में एक ही "स्कोर" होता है। उस स्थिति में, यदि वे टाई करते हैं, तो मैं उन्हें बंधे लोगों के भीतर "समय" द्वारा क्रमबद्ध करना चाहता हूं।मोंगोडब में, मैं पहले स्कोर द्वारा क्रमबद्ध कैसे करूं, फिर "टाई" होने पर समय के अनुसार क्रमबद्ध करें?

मैं यह कैसे कर सकता हूं? ऐसा करना संभव है कि MySQL में ...

उत्तर

13

आप एक समय में एक से अधिक गुणों को सॉर्ट कर सकते हैं। जैसे

sort({name : 1, age : -1}) 

उतरते उम्र से तो नाम आरोही द्वारा सॉर्ट जाएगा यहाँ संदर्भ के लिए देखें: http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order

संपादित करें:

pymongo में, कि हो सकता है

.sort([['name', pymongo.ASCENDING], ['age', pymongo.DESCENDING]]) 

referenceL http://api.mongodb.org/python/current/api/pymongo/cursor.html#pymongo.cursor.Cursor.sort

+0

आप पिमोंगो में उस प्रश्न को कैसे लिखेंगे? Pymongo एक शब्दकोश स्वीकार नहीं करता है। यह 2 तर्क स्वीकार करता है – TIMEX

+0

प्रलेखन के अनुसार, pymongo प्रकार http://api.mongodb.org/python/current/api/pymongo/cursor.html#pymongo.cursor.Cursor को क्रमबद्ध करने के लिए प्रमुख मान जोड़े की एक सूची ले सकता है। तरह –

संबंधित मुद्दे