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

MongoDB - Giới hạn kết quả của một truy vấn

Chỉ trả lại số lượng tài liệu bạn cần với limit() phương pháp.

Trong MongoDB, bạn có thể sử dụng limit() để chỉ định số lượng tài liệu tối đa để con trỏ trả về.

Khi bạn truy vấn một bộ sưu tập bằng db.collection.find() , bạn có thể thêm limit() để xác định giới hạn.

Ví dụ

Trước tiên, hãy thực hiện một truy vấn không có một giới hạn (để chúng tôi có thể xem có bao nhiêu tài liệu được trả lại):

Không có giới hạn

db.artists.find( { albums: { $exists: false }} )

Kết quả:

{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }

Có giới hạn

OK, vì vậy chúng ta hãy giới hạn kết quả để nói, 3 tài liệu:

db.artists.find( { albums: { $exists: false }} ).limit(3)

Kết quả:

{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }

Trong truy vấn của chúng tôi, chúng tôi đang sử dụng $exists toán tử để kiểm tra sự tồn tại của một trường. Trong trường hợp này, chúng tôi loại trừ những nghệ sĩ có album trong tài liệu.

Điều này có thể dễ dàng được chuyển sang { $exists: true } chỉ bao gồm những nghệ sĩ có album trường.

Thêm skip() Phương pháp

Bạn có thể sử dụng skip() để chuyển đến một tài liệu trong con trỏ. Nói cách khác, bạn có thể kiểm soát nơi MongoDB bắt đầu trả về kết quả.

db.artists.find( { albums: { $exists: false }} ).limit(3).skip(1)

Kết quả:

{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }

Vì vậy, bạn có thể thấy rằng nó đã bỏ qua kết quả đầu tiên nhưng vẫn trả về 3 tài liệu.

Lưu ý rằng skip() có thể được sử dụng trên bất kỳ truy vấn nào (không chỉ những truy vấn có limit() ).

Ví dụ:truy vấn ở đầu trang này trả về 6 tài liệu. Nếu chúng ta thêm skip(3) , chúng ta sẽ kết thúc với 3 tài liệu cuối cùng:

db.artists.find( { albums: { $exists: false }} ).skip(3)

Kết quả:

{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - DBREF có cần thiết không?

  2. WiredTiger và cập nhật tại chỗ

  3. Cơ sở dữ liệu NoSQL phổ biến nhất được hỗ trợ bởi ClusterControl

  4. Mongoose:Nhận danh sách người dùng đầy đủ

  5. MongoDB $ dateFromParts