एग्रीगेशन फ्रेमवर्क का उपयोग $size
MongoDB 2.6 और ऊपर से ऑपरेटर:
db.collection.aggregate([
// Project with an array length
{ "$project": {
"title": 1,
"author": 1,
"votes": 1,
"length": { "$size": "$votes" }
}},
// Sort on the "length"
{ "$sort": { "length": -1 } },
// Project if you really want
{ "$project": {
"title": 1,
"author": 1,
"votes": 1,
}}
])
काफी सरल।
यदि आपके पास संस्करण 2.6 उपलब्ध नहीं है, तब भी आप इसे थोड़े और काम के साथ कर सकते हैं:
db.collection.aggregate([
// unwind the array
{ "$unwind": "$votes" },
// Group back
{ "$group": {
"_id": "$id",
"title": { "$first": "$title" },
"author": { "$first": "$author" },
"votes": { "$push": "$votes" },
"length": { "$sum": 1 }
}},
// Sort again
{ "$sort": { "length": -1 } },
// Project if you want to
{ "$project": {
"title": 1,
"author": 1,
"votes": 1,
}}
])
बस इतना ही।