मूल रूप से आपको सरणी तत्वों को क्रमबद्ध करने की आवश्यकता है ($unwind
कोड>
/$sort
/$group
) और फिर आप अपना $sort
कर सकते हैं
शीर्ष मानों और $limit
के लिए
परिणाम।
अंत में आप $slice
सरणी में दस्तावेज़ों में "शीर्ष N" के लिए।
db.eplat1.aggregate([
{ "$unwind": "$Trips" },
{ "$sort": { "_id": 1, "Tips.TripCount": -1 } },
{ "$group": {
"_id": "$_id",
"Trips": { "$push": "$Trips" },
"maxTrip": { "$max": "$Trips.TripCount" }
}},
{ "$sort": { "maxTrip": -1 } },
{ "$limit": 50 },
{ "$addFields": { "Trips": { "$slice": [ "$Trips", 0 , 2 ] } } }
])