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