В MongoDB db.collection.count()
методът връща броя на документите, които биха съвпадали с find()
заявка за колекцията или изгледа.
collection
част е името на колекцията или изгледа за извършване на операцията за броене.
Имайте предвид, че всъщност не изпълнява find()
операция. Той просто отчита и връща броя на резултатите, които съответстват на заявка.
Пример
Да предположим, че имаме колекция, наречена 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.count()
Резултат:
7
Това е еквивалентно на извършване на следното:
db.pets.find().count()
Резултат:
7
Документацията на MongoDB всъщност съветва да не използвате db.collection.count()
без предикат на заявка. Това е така, защото методът връща резултати въз основа на метаданните на колекцията, което може да доведе до приблизителен брой.
Пребройте резултата от заявка
Можете да преброите резултата от заявка, като подадете критериите за заявка.
Пример:
db.pets.count({
"type": "Dog"
})
Резултат:
4
В този пример разбрахме, че в колекцията има четири кучета.
Нека проверим броя на друга заявка. Този път ще разберем колко домашни любимци имат тегло, по-голямо от определено количество.
db.pets.count({
"weight": { $gt: 10 }
})
Резултат:
3
Ограничете броя
Можете да използвате limit
параметър, за да посочите максимален брой документи за броене.
Пример:
db.pets.count( {}, { limit: 5 } )
Резултат:
5
Видяхме преди това, че всъщност има 7 документа в тази колекция, но в този пример го ограничихме до отчитане на максимум 5.
Ако лимитът е по-висок от действителния брой, резултатът няма да бъде повлиян от limit
аргумент.
Пример:
db.pets.count( {}, { limit: 10 } )
Резултат:
7
Пропускане на документи
Можете да броите, като използвате skip
параметър за пропускане на определен брой документи преди броене.
Пример:
db.pets.count( {}, { skip: 5 } )
Резултат:
2
Оттегляне
Имайте предвид, че документацията на MongoDB посочва следното:
Драйверите на MongoDB, съвместими с функциите 4.0, отменят съответния курсор и колекция
count()
API в полза на нови API заcountDocuments()
иestimatedDocumentCount()
. За конкретните имена на API за даден драйвер вижте документацията на драйвера.
Повече информация
db.collection.count()
method е обвивка за count
команда.
db.collection.count()
методът приема други параметри, като hint
, maxTimeMS
, readConcern
и collation
.
Вижте документацията на MongoDB за повече информация.