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" }