Върнете само необходимия брой документи с limit() метод.
В MongoDB можете да използвате limit() метод, за да посочите максимален брой документи, които курсорът да върне.
Когато правите заявка за колекция с помощта на db.collection.find() метод, можете да добавите limit() за да посочите лимита.
Пример
Първо нека направим заявка без ограничение (за да можем да видим колко документа са върнати):
Без лимит
db.artists.find( { albums: { $exists: false }} ) Резултат:
{ "_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" }
С лимит
Добре, нека ограничим резултатите, за да кажем 3 документа:
db.artists.find( { albums: { $exists: false }} ).limit(3) Резултат:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
В нашата заявка използваме $exists оператор за проверка за съществуването на поле. В този случай изключваме онези изпълнители, които имат
албуми
поле в документа.
Това може лесно да се превключи на { $exists: true } за да включите само тези изпълнители с
албуми
поле.
Добавете skip() Метод
Можете да използвате skip() метод за прескачане на документ в курсора. С други думи, можете да контролирате къде MongoDB започва да връща резултатите.
db.artists.find( { albums: { $exists: false }} ).limit(3).skip(1) Резултат:
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
Така че можете да видите, че е пропуснал първия резултат, но все пак е върнал 3 документа.
Обърнете внимание, че skip() може да се използва за всяка заявка (не само за тези с limit() ).
Например, заявката в горната част на тази страница върна 6 документа. Ако добавим skip(3) , ще завършим с последните 3 документа:
db.artists.find( { albums: { $exists: false }} ).skip(3) Резултат:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }