MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB $ orderBy

Trong MongoDB, $orderBy công cụ sửa đổi truy vấn sắp xếp các kết quả của một truy vấn theo thứ tự tăng dần hoặc giảm dần.

$orderBy chấp nhận một tài liệu chỉ định trường để sắp xếp và thứ tự sắp xếp. Thứ tự sắp xếp có thể là 1 để tăng dần hoặc -1 để giảm dần.

$orderBy đã không được chấp nhận trong mongo shell kể từ v3.2. Sử dụng cursor.sort() thay vào đó.

Dữ liệu mẫu

Giả sử chúng ta có một bộ sưu tập có tên là pets với các tài liệu sau:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
{ "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
{ "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }
{ "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
{ "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }

Sắp xếp theo thứ tự tăng dần

Để sắp xếp theo thứ tự tăng dần, chúng tôi sử dụng 1 cho thứ tự sắp xếp.

Dưới đây là ví dụ về truy vấn sử dụng $orderBy công cụ sửa đổi truy vấn để sắp xếp bộ sưu tập đó theo weight trường theo thứ tự tăng dần.

db.pets.find( { $query: {}, $orderBy: { weight: 1 } } )

Kết quả:

{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }
{ "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
{ "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
{ "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }

Sắp xếp theo thứ tự giảm dần

Để sắp xếp theo thứ tự giảm dần, chúng tôi sử dụng -1 cho thứ tự sắp xếp.

db.pets.find( { $query: {}, $orderBy: { weight: -1 } } )

Kết quả:

{ "_id" : 7, "name" : "Punch", "type" : "Kangaroo", "weight" : 200 }
{ "_id" : 6, "name" : "Hop", "type" : "Kangaroo", "weight" : 130 }
{ "_id" : 5, "name" : "Bruce", "type" : "Kangaroo", "weight" : 100 }
{ "_id" : 9, "name" : "Ruff", "type" : "Dog", "weight" : 30 }
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 8, "name" : "Snap", "type" : "Cat", "weight" : 12 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }

Một hình thức thay thế

$orderBy công cụ sửa đổi truy vấn cũng có thể được sử dụng với biểu mẫu sau:

db.pets.find()._addSpecial( "$orderby", { weight : 1 } )

Thông tin thêm

Như đã đề cập, $orderBy công cụ sửa đổi truy vấn không được chấp nhận trong mongo shell kể từ v3.2. Sử dụng cursor.sort() thay vào đó.

Xem tài liệu MongoDB để biết thêm thông tin.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:locale ::facet ::_ Tên S_create_c_locale không hợp lệ

  2. Cách cài đặt NodeJS với MongoDB trên Ubuntu

  3. Sử dụng S3 làm cơ sở dữ liệu so với cơ sở dữ liệu (ví dụ:MongoDB)

  4. Độ dài giá trị trường chuỗi trong mongoDB

  5. Cách sử dụng các biến trong hàm bản đồ MongoDB Map-Reduce