Phương thức sort[] chỉ định thứ tự truy vấn trả về các tài liệu phù hợp từ bộ sưu tập đã cho. Bạn phải áp dụng phương pháp này cho con trỏ trước khi truy xuất bất kỳ tài liệu nào từ cơ sở dữ liệu. Nó lấy một tài liệu làm tham số chứa một trường. cặp giá trị xác định thứ tự sắp xếp của tập kết quả. Giá trị là 1 hoặc -1 chỉ định sắp xếp tăng dần hoặc giảm dần tương ứng
- Nếu một sắp xếp trả về cùng một kết quả mỗi khi chúng ta thực hiện trên cùng một dữ liệu, thì kiểu sắp xếp đó được gọi là sắp xếp ổn định.
- Nếu một sắp xếp trả về một kết quả khác nhau mỗi khi chúng ta thực hiện trên cùng một dữ liệu, thì kiểu sắp xếp đó được gọi là sắp xếp không ổn định
- MongoDB thường thực hiện sắp xếp ổn định trừ khi sắp xếp trên trường chứa các giá trị trùng lặp.
- Chúng ta có thể sử dụng phương thức limit[] với phương thức sort[], nó sẽ trả về m tài liệu đầu tiên, trong đó m là giới hạn đã cho
- MongoDB có thể tìm thấy kết quả của thao tác sắp xếp bằng chỉ mục
- Nếu MongoDB không tìm thấy thứ tự sắp xếp bằng cách quét chỉ mục, thì nó sẽ sử dụng thuật toán sắp xếp top-k
cú pháp
db.Collection_Name.sort[{filed_name:1 or -1}]
Tham số
Tham số chứa một trường. cặp giá trị xác định thứ tự sắp xếp của tập kết quả. Giá trị là 1 hoặc -1 chỉ định sắp xếp tăng dần hoặc giảm dần tương ứng. Loại tham số là một tài liệu
Sắp xếp kết quả
Sử dụng phương pháp sort[]
để sắp xếp kết quả theo thứ tự tăng dần hoặc giảm dần
Phương thức sort[]
nhận một tham số, một đối tượng xác định thứ tự sắp xếp
Thí dụ
Sắp xếp kết quả theo thứ tự abc theo tên
var MongoClient = require['mongodb']. MongoClient;
var url = "mongodb. //máy chủ cục bộ. 27017/";
MongoClient. connect[url, function[err, db] {
if [err] throw err;
var dbo = db. db["mydb"];
var mysort = { name. 1 };
dbo. bộ sưu tập ["khách hàng"]. tìm thấy[]. sắp xếp[mysort]. toArray[function[err, result] {
if [err] throw err;
bảng điều khiển. log[kết quả];
db. close[];
}];
}];
Lưu mã ở trên vào tệp có tên "demo_sort. js" và chạy tệp
Chạy "demo_sort. js"
C. \Users\Tên của bạn>nút demo_sort. js
Cái nào sẽ cho bạn kết quả này
[
{ _id. 58fdbf5c0ef8a50b4cdd9a86, tên. 'Amy', địa chỉ. 'Apple st 652'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8e, tên. 'Ben', địa chỉ. 'Công viên ngõ 38'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8a, tên. 'Betty', địa chỉ. 'Green Grass 1'},
{ _id. 58fdbf5c0ef8a50b4cdd9a90, tên. 'Chuck', địa chỉ. 'Đường chính 989'},
{ _id. 58fdbf5c0ef8a50b4cdd9a87, tên. 'Hannah', địa chỉ. 'Núi 21'},
{ _id. 58fdbf5c0ef8a50b4cdd9a84, tên. 'John', địa chỉ. 'Quốc lộ 71'},
{ _id. 58fdbf5c0ef8a50b4cdd9a88, tên. 'Michael', địa chỉ. 'Thung lũng 345'},
{ _id. 58fdbf5c0ef8a50b4cdd9a85, tên. 'Peter', địa chỉ. 'Lowstreet 4'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8b, tên. 'Richard', địa chỉ. 'Sky st 331'},
{ _id. 58fdbf5c0ef8a50b4cdd9a89, tên. 'Sandy', địa chỉ. 'Ocean blvd 2'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8c, tên. 'Susan', địa chỉ. 'Một chiều 98'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8d, tên. 'Vicky', địa chỉ. 'Khu vườn vàng 2'},
{ _id. 58fdbf5c0ef8a50b4cdd9a91, tên. 'Viola', địa chỉ. 'Sideway 1633'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8f, tên. 'William', địa chỉ. 'Trung tâm đường 954'}
]
Sắp xếp giảm dần
Sử dụng giá trị -1 trong đối tượng sắp xếp để sắp xếp giảm dần
{ tên. 1 } // tăng dần
{ tên. -1 } // giảm dần
Thí dụ
Sắp xếp kết quả đảo ngược theo thứ tự bảng chữ cái theo tên
var MongoClient = require['mongodb']. MongoClient;
var url = "mongodb. //máy chủ cục bộ. 27017/";
MongoClient. connect[url, function[err, db] {
if [err] throw err;
var dbo = db. db["mydb"];
var mysort = { name. -1 };
dbo. bộ sưu tập ["khách hàng"]. tìm thấy[]. sắp xếp[mysort]. toArray[function[err, result] {
if [err] throw err;
bảng điều khiển. log[kết quả];
db. close[];
}];
}];
Lưu mã ở trên vào tệp có tên "demo_sort_desc. js" và chạy tệp
Chạy "demo_sort_desc. js"
C. \Users\Tên của bạn>nút demo_sort_desc. js
Cái nào sẽ cho bạn kết quả này
[
{ _id. 58fdbf5c0ef8a50b4cdd9a8f, tên. 'William', địa chỉ. 'Trung tâm đường 954'},
{ _id. 58fdbf5c0ef8a50b4cdd9a91, tên. 'Viola', địa chỉ. 'Sideway 1633'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8d, tên. 'Vicky', địa chỉ. 'Khu vườn màu vàng 2'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8c, tên. 'Susan', địa chỉ. 'Một chiều 98'},
{ _id. 58fdbf5c0ef8a50b4cdd9a89, tên. 'Sandy', địa chỉ. 'Ocean blvd 2'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8b, tên. 'Richard', địa chỉ. 'Sky st 331'},
{ _id. 58fdbf5c0ef8a50b4cdd9a85, tên. 'Peter', địa chỉ. 'Lowstreet 4'},
{ _id. 58fdbf5c0ef8a50b4cdd9a88, tên. 'Michael', địa chỉ. 'Thung lũng 345'},
{ _id. 58fdbf5c0ef8a50b4cdd9a84, tên. 'John', địa chỉ. 'Quốc lộ 71'},
{ _id. 58fdbf5c0ef8a50b4cdd9a87, tên. 'Hannah', địa chỉ. 'Núi 21'},
{ _id. 58fdbf5c0ef8a50b4cdd9a90, tên. 'Chuck', địa chỉ. 'Main Road 989'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8a, tên. 'Betty', địa chỉ. 'Green Grass 1'},
{ _id. 58fdbf5c0ef8a50b4cdd9a8e, tên. 'Ben', địa chỉ. 'Công viên ngõ 38'},
{ _id. 58fdbf5c0ef8a50b4cdd9a86, tên. 'Amy', địa chỉ. 'Apple st 652'}
]