sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB – Omezte výsledky dotazu

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

  1. Jak vypsat všechny databáze Redis?

  2. Konfigurace upozornění na metrikách MongoDB

  3. Tipy pro ukládání záloh MongoDB v cloudu

  4. Přístup k databázi produkce Meteor