В 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 за повече информация.