MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB — Ogranicz wyniki zapytania

Zwróć tylko liczbę potrzebnych dokumentów za pomocą limit() metoda.

W MongoDB możesz użyć limit() metoda, aby określić maksymalną liczbę dokumentów do zwrócenia przez kursor.

Gdy wysyłasz zapytanie do kolekcji za pomocą db.collection.find() metody, możesz dołączyć limit() aby określić limit.

Przykład

Najpierw zróbmy zapytanie bez limit (abyśmy mogli zobaczyć, ile dokumentów zostało zwróconych):

Bez limitu

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

Wynik:

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

Z limitem

OK, więc ograniczmy wyniki do trzech dokumentów:

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

Wynik:

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

W naszym zapytaniu używamy $exists operatora, aby sprawdzić istnienie pola. W tym przypadku wykluczamy artystów, którzy mają albumy pole w dokumencie.

Można to łatwo zmienić na { $exists: true } aby uwzględnić tylko tych wykonawców z albumami pole.

Dodaj skip() Metoda

Możesz użyć skip() metoda, aby przejść do dokumentu w obrębie kursora. Innymi słowy, możesz kontrolować, gdzie MongoDB zaczyna zwracać wyniki.

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

Wynik:

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

Widać więc, że pominął pierwszy wynik, ale nadal zwrócił 3 dokumenty.

Zauważ, że skip() może być użyty w dowolnym zapytaniu (nie tylko z limit() ).

Na przykład zapytanie u góry tej strony zwróciło 6 dokumentów. Jeśli dodamy skip(3) , otrzymamy ostatnie 3 dokumenty:

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

Wynik:

{ "_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. jak zwolnić buforowanie używane przez Mongodb?

  2. Jakie są zalety korzystania z bazy danych pozbawionej schematów, takiej jak MongoDB, w porównaniu z relacyjną bazą danych?

  3. MongoDB nie działa. BŁĄD:ścieżka db (/data/db) nie istnieje.

  4. Nodejs Mongo wstawia się do poddokumentu - dynamiczna nazwa pola

  5. Mongoose i unikalne pole