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

MongoDB countDocuments()

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB cursor.count()

  2. Многократно използване на позиционния оператор `$` за актуализиране на вложени масиви

  3. Намерете общото време, прекарано от потребител в mongoDB

  4. MongoDB:Намерете минималния елемент в масива и го изтрийте

  5. MongoDB $exp