Làm cách nào để sử dụng find sort trong mongodb?

Con trỏ và các phương thức của nó trong MongoDB đã được giải thích chi tiết trong hướng dẫn trước của chúng tôi trong loạt bài Đào tạo về MongoDB này

Trong hướng dẫn này, chúng ta sẽ tìm hiểu sâu về phương thức Sắp xếp trong MongoDB

Phương pháp sắp xếp được sử dụng để ưu tiên các tài liệu hoặc sắp xếp thứ tự của chúng trong bộ sưu tập mongo. Nói một cách đơn giản, phương thức sắp xếp sắp xếp tất cả các tài liệu phù hợp với tiêu chí cụ thể và trả về kết quả

Làm cách nào để sử dụng find sort trong mongodb?

Như bạn đã biết, một bản ghi được trả về dưới dạng con trỏ và phương pháp sắp xếp được áp dụng trên con trỏ. Vì vậy, khi chúng ta kết hợp phương thức sắp xếp với con trỏ, nó sẽ trả về cho chúng ta các tài liệu theo một thứ tự cụ thể

Phương thức sắp xếp chỉ có một tham số mà chúng ta phải truyền trường và giá trị của chúng. Các tham số được truyền ở Định dạng JSON như {Field. Giá trị} trong dấu ngoặc đơn của phương thức sắp xếp. Chúng tôi cũng có thể chuyển nhiều trường và giá trị để sắp xếp các bản ghi trên chúng

Bạn sẽ học được gì

  • Sắp xếp tăng dần và giảm dần
  • Giới hạn sắp xếp
  • Giới hạn kết quả sắp xếp
  • Sự kết luận
  • đề xuất đọc

Sắp xếp tăng dần và giảm dần

Phương pháp này cho phép chúng tôi sắp xếp tài liệu theo thứ tự tăng dần và giảm dần. Nếu chúng ta chuyển “1” làm tham số của trường sắp xếp, thì nó sẽ sắp xếp các tài liệu theo thứ tự tăng dần. Nếu chúng ta chuyển “-1” làm tham số của trường, thì nó sẽ trả về tất cả các bản ghi theo thứ tự giảm dần

cú pháp

db.collection.find().sort({field:order})

Mã số

db.staff.find().sort({staff_id:1})
db.staff.find().sort({staff_id:-1})

Hình 1. Trong vỏ Mongo

Làm cách nào để sử dụng find sort trong mongodb?

Hình 2. Trong Robo 3T

Làm cách nào để sử dụng find sort trong mongodb?

Chúng ta cũng có thể sắp xếp nhiều trường cùng một lúc. Bạn có thể quan sát kịch bản này với sự trợ giúp của đoạn mã sau

cú pháp

db.collection.find().sort({field:order, field:order })

Giới hạn sắp xếp

Mongodb lưu trữ tất cả các bản ghi trong bộ nhớ ảo và có một điều kiện được áp dụng trên tập dữ liệu. Điều kiện là các bản ghi phải nhỏ hơn 32 megabyte. Đôi khi việc sắp xếp không được thực hiện do sử dụng nhiều bộ nhớ

Giả sử nếu bạn có một nhóm lớn tài liệu chiếm hơn 32 MB bộ nhớ thì nó sẽ không thực hiện bất kỳ thao tác sắp xếp nào

Thay vào đó, nó sẽ trả về một lỗi trở thành nguyên nhân để loại bỏ truy vấn này. Để tối ưu hóa tình huống này, bạn có thể sử dụng kết hợp giới hạn và sắp xếp cùng nhau hoặc bạn có thể sử dụng lập chỉ mục phù hợp

Giới hạn kết quả sắp xếp

Chúng ta có thể sử dụng phương thức sắp xếp cùng với phương thức giới hạn để có được bản ghi giới hạn và được sắp xếp cùng nhau. Bằng cách này, chúng tôi có thể tối ưu hóa các hoạt động truy vấn trên Mongo DB và cũng tăng tốc độ cùng với mức tiêu thụ bộ nhớ

Chúng tôi cũng có thể sử dụng thuật toán sắp xếp top-k để tối ưu hóa các truy vấn của mình. Trong thuật toán này, bất cứ khi nào bản ghi tiêu tốn bộ nhớ hơn 32 MB, thì truy vấn sẽ tự động bị loại bỏ

Sự kết luận

Phương pháp sắp xếp giúp chúng tôi sắp xếp bản ghi theo một thứ tự cụ thể. Chúng tôi có thể lấy tài liệu theo thứ tự tăng dần và giảm dần. Chúng tôi cũng có thể áp dụng nhiều thứ tự với sự trợ giúp của phương pháp sắp xếp trong các trường khác nhau

Trong trường hợp giá trị chữ cái của trường, việc sắp xếp được áp dụng theo thứ tự chữ cái thông qua “1” và “-1”. Chẳng hạn như một người sẽ sắp xếp tất cả các bản ghi từ A đến Z và một người tiêu cực sẽ sắp xếp các bản ghi từ Z đến A

Đối với quá trình triển khai, hãy chuyển đến thiết bị đầu cuối và sử dụng trình bao Mongo. Nó sẽ được thực hiện bằng cách sử dụng một từ khóa mongo đơn giản trong thiết bị đầu cuối. MongoDB cung cấp một tính năng để hiển thị tên của cơ sở dữ liệu hiện tại mà bạn đã đăng nhập. Bằng cách sử dụng một lệnh đơn giản 'db', tên của cơ sở dữ liệu được hiển thị

>> db

Làm cách nào để sử dụng find sort trong mongodb?

Cơ sở dữ liệu mặc định là 'thử nghiệm'. Nếu bạn muốn sử dụng cơ sở dữ liệu của riêng mình, thì một lệnh đơn giản được sử dụng đó là

>> Sử dụng bản trình diễn

Bên trong cơ sở dữ liệu, chúng tôi nhập dữ liệu ở dạng tập hợp. Các bộ sưu tập này giống như mảng và các vùng chứa khác lưu trữ dữ liệu bên trong chúng. Một bộ sưu tập được tạo thông qua lệnh tạo. Ví dụ: chúng tôi đã tạo một bộ sưu tập có tên là 'dữ liệu'

>> Db. createCollection ('data')

Chúng tôi có thể kiểm tra tất cả các bộ sưu tập được tạo trong cơ sở dữ liệu được chỉ định

>> hiển thị bộ sưu tập

Làm cách nào để sử dụng find sort trong mongodb?

Chúng tôi sẽ làm việc trên cơ sở dữ liệu demo và thu thập dữ liệu. Dữ liệu được chèn thông qua lệnh chèn, nhưng chúng tôi sẽ không giải thích hiện tượng chèn dữ liệu vì chúng tôi đã chèn 4 tài liệu vào 4 hàng. Để xem toàn bộ dữ liệu trong bộ sưu tập, chúng tôi sử dụng find(). lệnh đẹp ()

>> db. dữ liệu. tìm () . đẹp ()

Làm cách nào để sử dụng find sort trong mongodb?

Mỗi lần một id duy nhất được phân bổ cho từng tài liệu thông qua MongoDB

sắp xếp MongoDB

Sắp xếp trong cơ sở dữ liệu MongoDB là một hiện tượng đơn giản và hoạt động tương tự như một quy trình sắp xếp đơn giản. Tất cả các tài liệu bên trong bộ sưu tập được sắp xếp theo điều kiện được áp dụng bên trong hàm sort(). Phương thức sort() xác định thứ tự theo đó tài liệu phù hợp được trả về thông qua truy vấn. Quá trình sắp xếp được thực hiện cùng với hàm find(). Chức năng này đóng vai trò tìm nạp hoặc tìm kiếm dữ liệu cần thiết. Dữ liệu đó sau đó được sắp xếp thông qua hàm sort(). Cú pháp cơ bản của hàm sort() là

db. tên bộ sưu tập. sắp xếp hàm({ filed_name. (1 hoặc - 1)})

Chức năng sắp xếp chỉ định tên trường hoặc bạn có thể nói rằng tên thuộc tính, theo đó chúng tôi muốn sắp xếp tất cả các tài liệu. Trường này được gán với một cặp giá trị hiển thị thứ tự sắp xếp mà giá trị kết quả phải chứa. Thứ tự có thể theo thứ tự tăng dần hoặc giảm dần

Lệnh này trả về giá trị được sắp xếp theo thứ tự bất kỳ. Bây giờ, chúng ta sẽ áp dụng chức năng sắp xếp trên cơ sở dữ liệu ‘demo’ và bộ sưu tập ‘data’. Đầu tiên, chúng ta sẽ sử dụng hàm sắp xếp rỗng, không có bất kỳ tham số nào. Chúng ta sẽ xem điều gì sẽ xảy ra mà không cần chỉ định bất kỳ tham số nào trong hàm sort()

>> db. dữ liệu. tìm () . sắp xếp ({})

Làm cách nào để sử dụng find sort trong mongodb?

Khi thực hiện, bạn sẽ thấy rằng không có thay đổi nào xảy ra vì dữ liệu được sắp xếp theo một hướng dẫn. trường phải luôn được đề cập dưới dạng tham số

Sắp xếp theo một trường duy nhất

Bây giờ, chúng ta sẽ sử dụng một trường cụ thể làm tham số trong hàm sắp xếp. Sắp xếp bao gồm hai giá trị chính. Nếu muốn sắp xếp chứng từ theo thứ tự tăng dần thì ta lấy giá trị dương là ‘1’. Và nếu chúng tôi muốn sắp xếp dữ liệu theo thứ tự giảm dần thì chúng tôi sử dụng giá trị âm '-1'

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

Chúng tôi đã áp dụng hàm sort() trên thuộc tính ‘age’ để tất cả các tài liệu được sắp xếp theo thuộc tính này. Bằng cách sử dụng '1', tuổi sẽ được hiển thị theo thứ tự tăng dần

>> db. dữ liệu. tìm () . sắp xếp ({ tuổi. 1})

Làm cách nào để sử dụng find sort trong mongodb?

Khi áp dụng lệnh, bạn sẽ thấy rằng tất cả các hàng được sắp xếp theo thứ tự tăng dần theo tham số tuổi. Hàm find() tìm nạp tất cả các bản ghi và sau đó hàm sort() sắp xếp dữ liệu để hiển thị. Chúng tôi cũng có thể áp dụng tính năng này cho bất kỳ thuộc tính nào khác

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

Tương tự như sắp xếp tăng dần, chúng ta sử dụng một trường trong hàm sort() để sắp xếp thứ tự giảm dần. Chúng ta lại sử dụng thuộc tính tuổi, nhưng lần này với giá trị âm 1 (-1)

>> db. dữ liệu. tìm () . sắp xếp ({ tuổi. 1})

Làm cách nào để sử dụng find sort trong mongodb?

Quan sát thuộc tính tuổi và các giá trị của nó để xem thứ tự chúng được hiển thị cùng với. Tất cả các giá trị theo thứ tự ngược lại tăng dần vì dấu âm,. Chúng tôi cũng sẽ sử dụng thứ tự giảm dần với tên thuộc tính khác

>> db. dữ liệu. tìm () . sắp xếp ({ tên. 1})

Bây giờ, sắp xếp theo thuộc tính tên. Thứ tự sẽ theo thứ tự bảng chữ cái. Hàm Sort() là một hàm phân biệt chữ hoa chữ thường. Chẳng hạn, nếu phần lớn các tên bắt đầu từ ký tự chữ thường thì chức năng này sẽ được áp dụng cho chúng. Trong khi đó, tên viết hoa được đặt ở cuối

Làm cách nào để sử dụng find sort trong mongodb?

Sắp xếp qua nhiều trường

Cho đến bây giờ, chúng tôi đã áp dụng chức năng sắp xếp trên các trường đơn lẻ. Nhưng bây giờ chúng ta sẽ sử dụng nhiều hơn một trường để sắp xếp dữ liệu. Trong ví dụ dưới đây, chúng tôi đã lấy age và _id làm hai thuộc tính cho tham số. Đầu tiên, chúng tôi sẽ gán '1' cho cả hai thuộc tính để sắp xếp các tài liệu theo thứ tự tăng dần

>>  db. dữ liệu. tìm () . sắp xếp ( { "tuổi" . 1 , "_id" . 1 } )

Làm cách nào để sử dụng find sort trong mongodb?

Chúng ta cũng có thể sử dụng một dương và một âm 1. Nhưng phương pháp sắp xếp sẽ theo thuộc tính đầu tiên được sử dụng

>> db. dữ liệu. tìm () . sắp xếp ( { "tên" . - 1 , "tuổi" . 1 } )

Làm cách nào để sử dụng find sort trong mongodb?

Sự kết luận

Thông qua bài viết này, chúng tôi nhằm mục đích xây dựng tính năng sắp xếp trong cơ sở dữ liệu MongoDB. Khi bắt đầu, chúng tôi đã giới thiệu cơ bản về quy trình sắp xếp cùng với các tính năng của nó. Sau đó, giải thích một số thuật ngữ trong MongoDB cần thiết cho phương pháp sắp xếp. Hàm sort() chứa một tham số có hai loại. Chúng tôi đã triển khai từng ví dụ với các loại tham số của nó. Hàm sắp xếp luôn trả về một tài liệu đã được sắp xếp nếu chúng ta chỉ định tên thuộc tính và cặp giá trị để sắp xếp. Sắp xếp được thực hiện thông qua cả trường đơn và nhiều trường

Cách sử dụng MongoDB $sort?

Phương thức sort() . Phương thức chấp nhận một tài liệu chứa danh sách các trường cùng với thứ tự sắp xếp của chúng. Để chỉ định thứ tự sắp xếp 1 và -1 được sử dụng. 1 được sử dụng cho thứ tự tăng dần trong khi -1 được sử dụng cho thứ tự giảm dần. To sort documents in MongoDB, you need to use sort() method. The method accepts a document containing a list of fields along with their sorting order. To specify sorting order 1 and -1 are used. 1 is used for ascending order while -1 is used for descending order.

MongoDB có hỗ trợ sắp xếp không?

MongoDB có thể thực hiện các thao tác sắp xếp trên chỉ mục một trường theo thứ tự tăng dần hoặc giảm dần . Trong các chỉ mục phức hợp, thứ tự sắp xếp xác định xem chỉ mục có thể được sắp xếp hay không. Các khóa sắp xếp phải được liệt kê theo thứ tự như được xác định trong chỉ mục.

Làm cách nào tôi có thể sắp xếp các giá trị rỗng đó được sắp xếp lần cuối trong MongoDB?

Bằng cách thêm thuộc tính boolean hasPrice , chúng ta có thể chỉ định thứ tự. Chúng tôi đã sắp xếp các trường có giá trị trước, điều này đảm bảo các trường không có giá (giá trị bằng 0 hoặc null) được sắp xếp sau cùng.