आप इससे संबंधित दस्तावेज़ पढ़ना चाहेंगे $sort
प्रदर्शन
:
साथ ही, ध्यान रखें कि इसे 'एग्रीगेशन पाइपलाइन . कहा जाता है ' किसी कारण से। इससे कोई फर्क नहीं पड़ता कि आप मिलान के बाद कहां क्रमबद्ध करते हैं। तो समाधान बहुत आसान होना चाहिए:
db.access_log.aggregate([
{
"$match": {
"visit_dt": {
"$gte": ISODate('2015-03-09'),
"$lt": ISODate('2015-03-11')
},
"file": {"$exists": true }
}
},
{ "$sort": { "file": 1 } },
{ "$project": { "file": 1, "_id": 0 } },
{ "$group": { "_id": "$file", "count": { "$sum": 1 } } },
{ "$sort": { "count": -1 } }
])
जब यह गारंटी दी जाती है कि फ़ील्ड हर रिकॉर्ड में मौजूद है, तो फ़ाइल फ़ील्ड मौजूद है, उसे गीला करना अनावश्यक हो सकता है। यह चोट नहीं करता है, क्योंकि मैदान पर एक सूचकांक है। अतिरिक्त सॉर्ट के साथ भी यही होता है:चूंकि हमने सुनिश्चित किया है कि केवल फ़ाइल फ़ील्ड वाले दस्तावेज़ ही पाइपलाइन में प्रवेश करें, इसलिए इंडेक्स का उपयोग किया जाना चाहिए।