У меня есть следующие студенты коллекция
{ "_id" : ObjectId("5f282eb2c5891296d8824130"), "name" : "Rajib", "mark" : "1000" }
{ "_id" : ObjectId("5f282eb2c5891296d8824131"), "name" : "Rahul", "mark" : "1200" }
{ "_id" : ObjectId("5f282eb2c5891296d8824132"), "name" : "Manoj", "mark" : "1000" }
{ "_id" : ObjectId("5f282eb2c5891296d8824133"), "name" : "Saroj", "mark" : "1400" }
Мое требование - отсортировать коллекцию на основе поля ' mark ' в порядке убывания порядок. Но он не должен отображать поле ' mark ' в конечном результате. Результат должен быть следующим:
{ "name" : "Saroj" }
{ "name" : "Rahul" }
{ "name" : "Rajib" }
{ "name" : "Manoj" }
Следующий запрос, который я пробовал, и он работает нормально.
db.students.find({},{"_id":0,"name":1}).sort({"mark":-1})
Моя MongoDB версия: v4.2.8 . Теперь вопрос в том, что эквивалентно Aggregation Query приведенному выше запросу. Я попробовал выполнить два запроса. Но оба не дали желаемого результата.
db.students.aggregate([{"$project":{"name":1,"_id":0}},{"$sort":{"mark":-1}}])
db.students.aggregate([{"$project":{"name":1,"_id":0,"mark":1}},{"$sort":{"mark":-1}}])