MongoDB: cursor.sort () метод
cursor.sort
Метод cursor.sort () используется для возврата результатов, упорядоченных в соответствии со спецификацией сортировки. Укажите в параметре сортировки поле или поля для сортировки и значение 1 или -1, чтобы указать сортировку по возрастанию или по убыванию соответственно.
Синтаксис:
cursor.sort (сортировка)
Параметр:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
Сортировать | Документ, который определяет порядок сортировки набора результатов. | необходимые | документ |
Коллекция prod_master содержит следующие документы.
{ "_id" : 5, "item" : { "name" : "mango", "type" : "cortland" }, "cost" : 1.29 }
{ "_id" : 9, "item" : { "name" : "mango", "type" : "fuji" }, "cost" : 1.99 }
{ "_id" : 7, "item" : { "name" : "apple", "type" : "honey crisp" }, "cost" : 1.99 }
{ "_id" : 10, "item" : { "name" : "mango", "type" : "jonagold" }, "cost" : 1.29 }
{ "_id" : 1, "item" : { "name" : "banana", "type" : "jonathan" }, "cost" : 1.29 }
{ "_id" : 6, "item" : { "name" : "apple", "type" : "mcintosh" }, "cost" : 1.29 }
{ "_id" : 8, "item" : { "name" : "orange", "type" : "cara cara" }, "cost" : 2.99 }
{ "_id" : 4, "item" : { "name" : "apple", "type" : "navel" }, "cost" : 1.39 }
{ "_id" : 3, "item" : { "name" : "orange", "type" : "satsuma" }, "cost" : 1.99 }
{ "_id" : 2, "item" : { "name" : "banana", "type" : "valencia" }, "cost" : 0.99 }
Пример: MongoDB: cursor.sort () метод
Следующий запрос, который возвращает все документы из коллекции prod_master, не определяет порядок сортировки:
db.prod_master.find();
Запрос возвращает документы в неопределенном prod_master:
"_id" : 5, "item" : { "name" : "mango", "type" : "cortland" }, "cost" : 1.29 }
"_id" : 9, "item" : { "name" : "mango", "type" : "fuji" }, "cost" : 1.99 }
"_id" : 7, "item" : { "name" : "apple", "type" : "honey crisp" }, "cost" : 1.99 }
"_id" : 10, "item" : { "name" : "mango", "type" : "jonagold" }, "cost" : 1.29 }
"_id" : 1, "item" : { "name" : "banana", "type" : "jonathan" }, "cost" : 1.29 }
"_id" : 6, "item" : { "name" : "apple", "type" : "mcintosh" }, "cost" : 1.29 }
"_id" : 8, "item" : { "name" : "orange", "type" : "cara cara" }, "cost" : 2.99 }
"_id" : 4, "item" : { "name" : "apple", "type" : "navel" }, "cost" : 1.39 }
"_id" : 3, "item" : { "name" : "orange", "type" : "satsuma" }, "cost" : 1.99 }
"_id" : 2, "item" : { "name" : "banana", "type" : "valencia" }, "cost" : 0.99 }
Следующий запрос указывает сортировку в поле стоимости в порядке убывания.
db.prod_master.find().sort( { cost: -1 } )
Запрос возвращает следующие документы в порядке убывания стоимости:
> db.prod_master.find().sort( { cost: -1 } )
{ "_id" : 8, "item" : { "name" : "orange", "type" : "cara cara" }, "cost" : 2.99 }
{ "_id" : 9, "item" : { "name" : "mango", "type" : "fuji" }, "cost" : 1.99 }
{ "_id" : 7, "item" : { "name" : "apple", "type" : "honey crisp" }, "cost" : 1.99 }
{ "_id" : 3, "item" : { "name" : "orange", "type" : "satsuma" }, "cost" : 1.99 }
{ "_id" : 4, "item" : { "name" : "apple", "type" : "navel" }, "cost" : 1.39 }
{ "_id" : 5, "item" : { "name" : "mango", "type" : "cortland" }, "cost" : 1.29 }
{ "_id" : 10, "item" : { "name" : "mango", "type" : "jonagold" }, "cost" : 1.29 }
{ "_id" : 1, "item" : { "name" : "banana", "type" : "jonathan" }, "cost" : 1.29 }
{ "_id" : 6, "item" : { "name" : "apple", "type" : "mcintosh" }, "cost" : 1.29 }
{ "_id" : 2, "item" : { "name" : "banana", "type" : "valencia" }, "cost" : 0.99 }
Следующий запрос задает порядок сортировки, используя поля из встроенного элемента документа. Запрос сортируется сначала по полю имени в порядке возрастания, а затем по каждому имени по полю типа в порядке возрастания.
db.prod_master.find().sort( { "item.name": 1, "item.type": 1 } );
Запрос возвращает следующие документы, упорядоченные сначала по полю имени, а внутри каждого имени по полю типа:
> db.prod_master.find().sort( { "item.name": 1, "item.type": 1 } );
{ "_id" : 7, "item" : { "name" : "apple", "type" : "honey crisp" }, "cost" : 1.99 }
{ "_id" : 6, "item" : { "name" : "apple", "type" : "mcintosh" }, "cost" : 1.29 }
{ "_id" : 4, "item" : { "name" : "apple", "type" : "navel" }, "cost" : 1.39 }
{ "_id" : 1, "item" : { "name" : "banana", "type" : "jonathan" }, "cost" : 1.29 }
{ "_id" : 2, "item" : { "name" : "banana", "type" : "valencia" }, "cost" : 0.99 }
{ "_id" : 5, "item" : { "name" : "mango", "type" : "cortland" }, "cost" : 1.29 }
{ "_id" : 9, "item" : { "name" : "mango", "type" : "fuji" }, "cost" : 1.99 }
{ "_id" : 10, "item" : { "name" : "mango", "type" : "jonagold" }, "cost" : 1.29 }
{ "_id" : 8, "item" : { "name" : "orange", "type" : "cara cara" }, "cost" : 2.99 }
{ "_id" : 3, "item" : { "name" : "orange", "type" : "satsuma" }, "cost" : 1.99 }
Получить данные о ресторанах здесь
Предыдущий: cursor.skip () метод
Далее: метод cursor.toArray ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования