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

Làm cách nào để MongoDB sắp xếp tài liệu của họ trong một bộ sưu tập?

Nó được gọi là trật tự tự nhiên :

natural order

Thứ tự trong đó cơ sở dữ liệu tham chiếu đến tài liệu trên đĩa. Đây là thứ tự sắp xếp mặc định. Xem $naturalReturn in Natural Order .

Điều này xác nhận rằng nhìn chung, bạn nhận được chúng theo đúng thứ tự mà bạn đã chèn, nhưng điều đó không được đảm bảo – như bạn đã nhận thấy.

Trở lại theo thứ tự tự nhiên

$natural tham số trả về các mục theo thứ tự tự nhiên của chúng trong cơ sở dữ liệu. Thứ tự này là một tính năng triển khai nội bộ và bạn không nên dựa vào bất kỳ cấu trúc cụ thể nào bên trong nó.

Sử dụng chỉ mục

Các truy vấn bao gồm sắp xếp theo $natural đặt hàng không sử dụng các chỉ mục để đáp ứng vị từ truy vấn với ngoại lệ sau:Nếu vị từ truy vấn là điều kiện bình đẳng trên _id trường { _id: <value> } , sau đó là truy vấn có sắp xếp theo $natural đặt hàng có thể sử dụng _id chỉ mục.

MMAPv1

Thông thường, thứ tự tự nhiên phản ánh thứ tự chèn với ngoại lệ sau cho công cụ lưu trữ MMAPv1. Đối với công cụ lưu trữ MMAPv1, thứ tự tự nhiên không phản ánh thứ tự chèn nếu tài liệu di chuyển vị trí do tốc độ tăng tài liệu hoặc thao tác xóa giải phóng dung lượng, sau đó tài liệu mới được chèn sẽ chiếm dụng.

Rõ ràng, giống như các tài liệu đã đề cập, bạn không nên dựa vào thứ tự mặc định này ( Thứ tự này là một tính năng triển khai nội bộ và bạn không nên dựa vào bất kỳ cấu trúc cụ thể nào bên trong nó. ).

Nếu bạn cần sắp xếp mọi thứ, hãy sử dụng các giải pháp sắp xếp.

Về cơ bản, hai lệnh gọi sau sẽ trả về các tài liệu theo cùng một thứ tự (vì thứ tự mặc định là $natural ):

db.mycollection.find().sort({ "$natural": 1 })
db.mycollection.find()

Nếu bạn muốn sắp xếp theo trường khác (ví dụ:name ) bạn có thể làm điều đó:

db.mycollection.find().sort({ "name": 1 })


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. NoSQL (MongoDB) so với Lucene (hoặc Solr) làm cơ sở dữ liệu của bạn

  2. Trường hợp cho chỉ số băm MongoDB

  3. Xóa tất cả các trường rỗng

  4. Thêm trường không có trong giản đồ với mongoose

  5. 3 cách tạo chỉ mục trong MongoDB