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

Làm cách nào để phân trang bằng cách sử dụng truy vấn phạm vi trong MongoDB?

Vì bộ sưu tập tôi đang phân trang có các giá trị trùng lặp nên tôi phải tạo chỉ mục kết hợp trên ProductName và id.

Tạo chỉ mục tổng hợp

db.ProductGuideItem.ensureIndex({ ProductName:1, _id:1});

Điều này đã giải quyết được vấn đề của tôi.
Tham khảo:https://groups.google.com/d/msg/mongodb-user/3EZZIRJzW_A/oYH79npKZHkJ

Giả sử bạn có các giá trị sau:

{a:1, b:1}
{a:2, b:1}
{a:2, b:2}
{a:2, b:3}
{a:3, b:1}

Vì vậy, bạn làm điều này cho phân trang dựa trên phạm vi (kích thước trang là 2):

Trang đầu tiên

find().sort({a:1, b:1}).limit(2)
{a:1, b:1}
{a:2, b:1}

Trang thứ 2

find().min({a:2, b:1}).sort({a:1, b:1}).skip(1).limit(2)

{a:2, b:2}
{a:2, b:3}

Trang thứ 3

find().min({a:2, b:3}).sort({a:1, b:1}).skip(1).limit(2)
{a:3, b:1}

Đây là tài liệu cho $ min / max:http://www.mongodb.org/display/DOCS/min+and+max+Query+Specifiers

Nếu bạn không có các giá trị trùng lặp trong bộ sưu tập của mình, bạn không cần sử dụng min &max hoặc tạo chỉ mục kết hợp. Bạn chỉ có thể sử dụng $ lt &$ gt.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dữ liệu mùa xuân mongo sử dụng HOẶC trong Truy vấn

  2. Không thể khởi động MongoDB dưới dạng dịch vụ

  3. Nhận các giá trị dưới dạng mảng các phần tử sau khi $ tra cứu

  4. Mongodb:Toán tử $ in so với rất nhiều truy vấn đơn lẻ

  5. MongoDB $ anyElementTrue