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

Tìm tài liệu tiếp theo trong MongoDb

Tốt nhất là thêm sort() rõ ràng tiêu chí nếu bạn muốn một thứ tự kết quả có thể dự đoán được.

Giả sử thứ tự bạn đang theo đuổi là "thứ tự chèn" và bạn đang sử dụng các ObjectIds được tạo mặc định của MongoDB, thì bạn có thể truy vấn dựa trên ObjectId:

// Find next product created
db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142") }}).limit(1)

Lưu ý rằng ví dụ này chỉ hoạt động vì:

  • bốn byte đầu tiên của ObjectId được tính từ dấu thời gian kiểu unix (xem: Đặc tả ObjectId )
  • một truy vấn trên _id một mình sẽ sử dụng _id mặc định chỉ mục (được sắp xếp theo id) để tìm kết quả phù hợp

Vì vậy, thực sự, loại ngầm định này giống như:

db.products.find({_id: {$gt: ObjectId("4fdbaf608b446b0477000142" )}}).sort({_id:1}).limit(1);

Nếu bạn đã thêm nhiều tiêu chí hơn vào truy vấn để đủ điều kiện cách tìm sản phẩm "tiếp theo" (ví dụ:một category ), truy vấn có thể sử dụng một chỉ mục khác và thứ tự có thể không như bạn mong đợi.

Bạn có thể kiểm tra việc sử dụng chỉ mục với giải thích () .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để triển khai has_many:thông qua các mối quan hệ với Mongoid và mongodb?

  2. Không thể kết nối với siêu người dùng MongoDB với các cơ sở dữ liệu khác từ thiết bị đầu cuối

  3. Kết nối với nhiều máy chủ mongo db và xác thực bằng cơ sở dữ liệu khác trong khởi động mùa xuân

  4. mongodb lấy toàn bộ tài liệu từ một giá trị

  5. Truy vấn một mảng lồng nhau trong MongoDb