Kết quả truy vấn sắp xếp MongoDB

Ket Qua Truy Van Sap Xep Mongodb



Hầu như tất cả các hệ thống cơ sở dữ liệu đều ưu tiên sắp xếp dữ liệu trước khi truy xuất, điều này khiến chúng khác biệt với các phương pháp lưu trữ dữ liệu khác. MongoDB cũng có nhiều cách khác nhau để xác định cách sắp xếp dữ liệu. Hầu hết, chúng ta sử dụng phương thức sort() để xác định trình tự xuất hiện của tài liệu. Thứ tự của chuỗi được truyền dưới dạng tham số cho phương thức sort(). Một hoặc nhiều trường cấu thành phương thức sort() thường được theo sau bởi giá trị “1” hoặc “-1”. Phương thức sort() làm cho truy vấn dễ đọc hơn, giúp cải thiện khả năng hiểu một tập hợp đã chỉ định.

Kết quả truy vấn sắp xếp MongoDB như thế nào?

Phương thức sắp xếp lấy trường và giá trị được liên kết của nó dưới dạng một tham số. Phương thức sắp xếp chấp nhận các tham số ở định dạng JSON như {Field: Value}. Nhiều trường và giá trị cũng có thể được nhập vào trong phương thức sort() để lấy tài liệu đã sắp xếp từ bộ sưu tập. Hãy xem xét tài liệu sau trong đó chúng tôi đã chèn nhiều tài liệu khác vào cơ sở dữ liệu của chúng tôi. Tên của cơ sở dữ liệu MongoDB này có tiêu đề là “Nhân viên”. Bộ sưu tập “Employees” có tất cả thông tin của các nhân viên được hiển thị bên dưới.

db.Employees.insertMany([
{
'tên': 'Robert',
'DOB': '14-05-1993',
'Nam giới',
'thư điện tử': ' [email được bảo vệ] ',
'bộ phận': 'An ninh',
'lương' : 5000
},
{
'tên': 'kyle',
'DOB': '31-05-1999',
'nữ giới',
'thư điện tử': ' [email được bảo vệ] ',
'bộ phận': 'CNTT',
'lương' : 6200
},
{
'tên': 'Matthew',
'DOB': '26-04-1993',
'Nam giới',
'thư điện tử': ' [email được bảo vệ] ',
'bộ phận': 'Tài khoản',
'lương' : 3500
},
{
'tên': 'Kevin',
'DOB': '14-07-1991',
'Nam giới',
'thư điện tử': ' [email được bảo vệ] ',
'bộ phận': 'An ninh',
'lương' : 4500
},

{
'tên': 'Julia',
'DOB': '09-12-2000',
'nữ giới',
'thư điện tử': ' [email được bảo vệ] ',
'bộ phận': 'CNTT',
'lương' : 2500
}
])

Bộ sưu tập “Nhân viên” được chèn vào cùng với các tài liệu được cung cấp có xác nhận được hiển thị trong đầu ra sau. Chúng tôi sẽ sử dụng tài liệu bộ sưu tập này để hiển thị chức năng của kết quả truy vấn sắp xếp.









Ví dụ #1: MongoDB Unsorted Collection

Khi truy vấn tìm kiếm được thực thi bằng phương thức find(), nó luôn đưa ra một tập tài liệu chưa được sắp xếp. Điều này có thể rõ ràng hơn với các kết quả truy vấn được cung cấp bên dưới.



>db.Employees.find({},{_id:0})

Ở đây, chúng tôi có một truy vấn của bộ sưu tập “Employee” với phương thức find(). Phương thức find() lấy tham số rỗng cùng với “_id:0”. Để có kết quả đơn giản hơn, ID tài liệu sẽ bị xóa bằng toán tử “_id:0”. Theo mặc định, chúng tôi nhận được các bộ sưu tập chưa được sắp xếp khi truy vấn được tìm kiếm bằng phương thức find(). Đầu ra được truy xuất bên dưới là tất cả các tài liệu chưa được sắp xếp theo cách mà chúng tôi có tại thời điểm chèn.





Ví dụ #2: Kết quả truy vấn sắp xếp MongoDB theo thứ tự tăng dần

Bộ sưu tập được sắp xếp trong MongoDB có được bằng cách sử dụng phương thức sort() nên được đặt sau phương thức find(). Phương thức sort() trong MongoDB lấy tham số đi kèm với tên trường và thứ tự sắp xếp tài liệu. Chúng ta cần nhập “1” làm tham số vào trường vì chúng ta sẽ truy xuất tài liệu theo thứ tự tăng dần trong ví dụ cụ thể này. Sau đây trong truy vấn sắp xếp kết quả theo thứ tự tăng dần.



>db.Employees.find().sort({name:1})

Ở đây, chúng ta đã sử dụng phương thức sort() sau truy vấn tìm kiếm find. Phương thức sort() được sử dụng để sắp xếp trường “tên” theo thứ tự tăng dần khi giá trị “1” được đặt bên cạnh trường đã chỉ định. Lưu ý rằng nếu phương thức sort() không được chỉ định với bất kỳ giá trị tham số nào thì bộ sưu tập sẽ không được sắp xếp. Đầu ra từ phương thức sort() sẽ được lấy theo thứ tự mặc định. Kết quả của phương thức sort() theo trường tên theo thứ tự tăng dần được hiển thị trong trình bao MongoDB sau đây.

Ví dụ #3: Kết quả truy vấn sắp xếp MongoDB theo thứ tự giảm dần

Bây giờ, chúng tôi đang hiển thị kết quả truy vấn sắp xếp của MongoDB theo thứ tự giảm dần. Loại truy vấn này giống như ví dụ trên nhưng có một điểm khác biệt. Đối với thứ tự giảm dần, phương thức sort() lấy giá trị “-1” đối với tên cột. Các kết quả truy vấn sắp xếp theo thứ tự giảm dần được đưa ra dưới đây.

>db.Employees.find({},{'email':1,_id:0}).sort({'email':-1})

Tại đây, truy vấn tìm kiếm bắt đầu bằng phương thức find() tìm trường “email” và chỉ trả về các giá trị “email” của trường. Tiếp theo, chúng tôi đã chỉ định phương thức sort() được sử dụng để sắp xếp trường “email” và giá trị “-1” bên cạnh nó cho biết rằng kết quả sắp xếp thu được sẽ theo thứ tự giảm dần. Các kết quả truy vấn sắp xếp theo thứ tự giảm dần được tìm nạp sau khi thực hiện nó trong trình bao MongoDB.

Ví dụ #4: Kết quả truy vấn sắp xếp MongoDB cho nhiều trường

Chúng ta có thể sắp xếp nhiều trường trong MongoDB bằng phương thức sort(). Các trường được sắp xếp phải được khai báo trong phương thức sort(). Việc sắp xếp dựa trên thứ tự khai báo của các trường và thứ tự sắp xếp được kiểm tra từ trái sang phải. Truy vấn để sắp xếp nhiều trường sẽ giống như sau:

>db.Employees.find({},{_id:0}).sort({'name':1,'salary':1})

Ở đây, phương thức sort() được truyền với các trường “tên” và “lương” sẽ được sắp xếp. Trường “tên” từ bộ sưu tập “Nhân viên” được sắp xếp đầu tiên vì đây là trường đối số đầu tiên của phương thức sort(). Sau đó, phương thức sort() sắp xếp trường đối số thứ hai “salary”. Thứ tự của cả hai trường là “1” cho biết việc sắp xếp sẽ theo thứ tự tăng dần. Đầu ra cho nhiều trường của truy vấn sắp xếp được tạo theo thứ tự sắp xếp được chỉ định bên dưới.

Ví dụ #5: Kết quả truy vấn sắp xếp MongoDB với phương thức giới hạn

Hơn nữa, phương thức sort() cũng có thể kết hợp với phương thức limit() đưa ra số lượng giới hạn các tài liệu được sắp xếp theo truy vấn tìm kiếm đó. Phương thức giới hạn () yêu cầu một số nguyên làm tham số, giới hạn số lượng tài liệu sẽ được đưa vào tập hợp đầu ra. Truy vấn tìm kiếm được đặt bên dưới, trước tiên sắp xếp tài liệu và sau đó cung cấp các tài liệu giới hạn đã chỉ định.

>db.Employees.find({},{_id:0}).sort({'department':1,'DOB':1}).limit(4).pretty()

Ở đây, chúng ta có truy vấn tìm kiếm bắt đầu thao tác sắp xếp cho cột “phòng ban” và sau đó cho cột “DOB” theo thứ tự tăng dần bằng cách sử dụng phương thức sort(). Sau khi sắp xếp xong, chúng tôi đã đặt phương thức giới hạn () bên cạnh nó để truy xuất tài liệu giới hạn. Phương thức giới hạn () được cung cấp một giá trị số “4”, có nghĩa là nó chỉ hiển thị bốn tài liệu được sắp xếp cho đầu ra như trong màn hình sau:

Ví dụ #6: Kết quả truy vấn sắp xếp MongoDB với $sort Aggregation

Trong tất cả các ví dụ trên, chúng ta đã thực hiện sắp xếp thông qua phương thức sort() của MongoDB. Có một cách sắp xếp khác trong MongoDB được thực hiện thông qua tập hợp $sort. Toán tử $sort sắp xếp tất cả các tài liệu đầu vào, sau đó trả lại các tài liệu đã sắp xếp cho đường dẫn. Toán tử $sort được áp dụng cho bộ sưu tập “Employees” bên dưới.

db.Employees.aggregate([ { $sort : { lương: 1, _id: -1 } } ])

Ở đây, chúng tôi đã gọi ra phương thức tổng hợp bên trong mà chúng tôi có thể sử dụng toán tử “$sort”. Sau đó, chúng ta có biểu thức toán tử $sort sắp xếp cột “salary” theo thứ tự tăng dần và cột “id” theo thứ tự giảm dần. Tập hợp $sort được áp dụng trên trường sẽ đưa ra các kết quả sau:

Ví dụ #6: Kết quả truy vấn sắp xếp MongoDB bằng phương thức bỏ qua

Phương thức sort() cũng có thể được ghép nối với phương thức skip(). Tập dữ liệu kết quả có thể có một số tài liệu nhất định sẽ bị bỏ qua khi sử dụng phương thức bỏ qua(). Giống như phương thức giới hạn (), phương thức bỏ qua () cũng chấp nhận giá trị số cho biết số lượng tài liệu sẽ được bỏ qua. Chúng ta đã kết hợp phương thức sort() với phương thức skip() trong truy vấn sắp xếp.

>db.Employees.find({},{_id:0}).sort({'salary':1}).skip(4).pretty()

Ở đây, chúng ta đã sử dụng phương thức skip() bên cạnh phương thức sort(). Khi phương thức sort() sắp xếp các tài liệu thì nó sẽ chuyển kết quả sắp xếp cho phương thức sort(). Sau đó, phương thức bỏ qua () đã xóa bốn tài liệu được sắp xếp đầu tiên khỏi bộ sưu tập.

Phần kết luận

Bài viết nói về kết quả truy vấn sắp xếp trong MongoDB. Chúng tôi đã sử dụng phương thức sort() cho mục đích này để tổ chức các bản ghi theo một trình tự cụ thể. Chúng tôi cũng đã sử dụng phương thức sort() để sắp xếp nhiều trường trên một số trường. Sau đó, phương thức sort() được ghép nối với các phương thức limit() và skip() cho các tài liệu được sắp xếp bằng các thao tác này Ngoài ra, chúng tôi đã cung cấp tập hợp $sort cho các kết quả truy vấn sắp xếp trong MongoDB.