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

MongoDB cursor.count()

В MongoDB cursor.count() метод преброява броя на документите, на които се отнася курсорът..

Имайте предвид, че всъщност не изпълнява заявката. Той просто отчита и връща броя на резултатите, които ще бъдат върнати от заявката.

cursor.count() method е обвивка за count команда.

Пример

Да предположим, че имаме колекция, наречена pets със следните документи:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 }
{ "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }

Можем да използваме следната заявка, за да върнем броя на документите в колекцията:

db.pets.find().count()

Резултат:

7

Това е еквивалентно на извършване на следното:

db.pets.count()

Резултат:

7

Документацията на MongoDB всъщност съветва да не използвате cursor.count() когато find() методът се извиква без предикат на заявка. Това е така, защото в такива случаи резултатите се основават на метаданните на колекцията, което може да доведе до приблизителен брой.

Пребройте резултата от заявка

Можете да преброите резултата от заявка, като предадете критериите за заявка на find() метод.

Пример:

db.pets.find({"type": "Dog"}).count()

Резултат:

4

В този пример разбрахме, че в колекцията има четири кучета.

Нека проверим броя на друга заявка. Този път ще разберем колко домашни любимци имат тегло, по-голямо от определено количество.

db.pets.find({"weight": { $gt: 10 }}).count()

Резултат:

3

Оттегляне

Имайте предвид, че документацията на MongoDB посочва следното:

Драйверите на MongoDB, съвместими с функциите 4.0, отменят съответния курсор и колекция count() API в полза на нови API за countDocuments() и estimatedDocumentCount() . За конкретните имена на API за даден драйвер вижте документацията на драйвера.

applySkipLimit Параметър

cursor.count() методът приема един незадължителен параметър:applySkipLimit параметър.

Този параметър указва дали да се вземат предвид ефектите от cursor.skip() и cursor.limit() методи в преброяването.

По подразбиране той игнорира всички ефекти от тези два метода. За да включите ефектите, използвайте appySkipLimit: true .

Повече информация

Вижте документацията на MongoDB за повече информация.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB заместващ знак в ключа на заявка

  2. MongoDB $setIntersection

  3. Извършване на изявление на случай в рамката за агрегиране на mongodb

  4. 2 начина за ограничаване на документите, върнати в MongoDB

  5. MongoDB през 2018 г. - Една година в преглед