Pomocí limit()
vraťte pouze tolik dokumentů, kolik potřebujete metoda.
V MongoDB můžete použít limit()
metoda k určení maximálního počtu dokumentů, které má kurzor vrátit.
Při dotazu na kolekci pomocí db.collection.find()
můžete přidat limit()
specifikovat limit.
Příklad
Nejprve proveďte dotaz bez limit (abychom viděli, kolik dokumentů je vráceno):
Bez limitu
db.artists.find( { albums: { $exists: false }} )
Výsledek:
{ "_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" }
S limitem
OK, takže omezme výsledky na 3 dokumenty:
db.artists.find( { albums: { $exists: false }} ).limit(3)
Výsledek:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" }
V našem dotazu používáme $exists
operátor pro kontrolu existence pole. V tomto případě vylučujeme umělce, kteří mají
alba
pole v dokumentu.
Toto lze snadno přepnout na { $exists: true }
zahrnout pouze ty umělce s
albami
pole.
Přidejte skip()
Metoda
Můžete použít skip()
metoda pro přeskočení na dokument v rámci kurzoru. Jinými slovy, můžete ovládat, kde MongoDB začne vracet výsledky.
db.artists.find( { albums: { $exists: false }} ).limit(3).skip(1)
Výsledek:
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
Můžete tedy vidět, že přeskočil první výsledek, ale přesto vrátil 3 dokumenty.
Všimněte si, že skip()
lze použít na jakýkoli dotaz (nejen na ty s limit()
).
Například dotaz v horní části této stránky vrátil 6 dokumentů. Pokud přidáme skip(3)
, skončíme u posledních 3 dokumentů:
db.artists.find( { albums: { $exists: false }} ).skip(3)
Výsledek:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }