मान लें कि आपके पास मोंगोडब का नवीनतम संस्करण स्थापित है, इसे करने का एक तरीका यह है:
Sort
published_date
. के आधार पर रिकॉर्ड अवरोही क्रम में।group
उनकेcategory
. के आधार पर रिकॉर्ड . प्रत्येक समूह के लिए, सभी रिकॉर्ड एक साथ एक सरणी में एकत्रित करें।- जावास्क्रिप्ट/क्लाइंट साइड कोड में,
slice
प्रत्येक समूह (श्रेणी) के शीर्ष 5 रिकॉर्ड।
$slice
सर्वर साइड में उपलब्ध नहीं है $project
एग्रीगेशन पाइपलाइन ऑपरेटर, जो हमें सर्वर साइड पर ऑपरेशन करने से रोकता है।
var result = db.collection.aggregate(
[
{$sort:{"published_date":-1}},
{$group:{"_id":"$category","values":{$push:"$$ROOT"}}}
]
).map(function(doc){
return {"category":doc._id,"records":doc.values.slice(0,5)};
});
result
वेरिएबल अब दस्तावेजों की एक सरणी होगी। प्रत्येक दस्तावेज़ प्रत्येक category
. का प्रतिनिधित्व करता है और बदले में शीर्ष 5
. की एक सरणी है रिकॉर्ड।