MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB – ограничаване на резултатите от заявка

Върнете само необходимия брой документи с 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" }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $toString

  2. Намерете дублиращи се URL адреси в mongodb

  3. Импортирайте CSV файл в MongoDB с mongoimport

  4. Закръгляване до 2 знака след десетичната запетая с помощта на рамката за агрегиране на MongoDB

  5. Каква е разликата между replaceOne() и updateOne() в MongoDB?