Given the data structure (based on my model) below how would I go about sorting the collection by cars.year in desc order with mongoose? So that first I find the max year in the cars array and then sort the collection by that.
{ "_id" : 1234,
"dealershipName": "Eric’s Mongo Cars",
"cars": [
{"year": 2013,
"make": "10gen",
"model": "MongoCar",},
{"year": 1985,
"make": "DeLorean",
"model": "DMC-12",}
]
},
{ "_id" : 1235,
"dealershipName": "Eric’s Mongo Cars",
"cars": [
{"year": 2015,
"make": "10gen",
"model": "MongoCar",},
{"year": 12001,
"make": "DeLorean",
"model": "DMC-12",}
]
}
I tried something like this with the aggregation function, but $unwind
duplicates my results for each element in the cars array.
MyModel
.aggregate([{
$unwind: "$cars"
}, {
$project: {
...
year: '$cars.year',
}
}, {
$sort: {
year: -1
}
}])
.exec(function ...)
Is there a better or more efficient way to go about doing this?
Thanks in advance for your help.