sql >> Database >  >> NoSQL >> MongoDB

MongoDB db.collection.count()

In MongoDB de db.collection.count() methode retourneert het aantal documenten dat zou overeenkomen met een find() vraag voor de verzameling of weergave.

De collection deel is de naam van de verzameling of weergave waarop de telbewerking moet worden uitgevoerd.

Merk op dat het niet echt een find() . uitvoert operatie. Het telt gewoon en retourneert het aantal resultaten dat overeenkomt met een zoekopdracht.

Voorbeeld

Stel dat we een verzameling hebben met de naam pets met de volgende documenten:

{ "_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 }

We kunnen de volgende query gebruiken om het aantal documenten in de collectie te retourneren:

db.pets.count()

Resultaat:

7

Dit komt overeen met het volgende:

db.pets.find().count()

Resultaat:

7

De MongoDB-documentatie raadt het gebruik van db.collection.count() eigenlijk af zonder een query-predikaat. Dit komt omdat de methode resultaten retourneert op basis van de metadata van de collectie, wat kan resulteren in een geschatte telling.

Tel het resultaat van een zoekopdracht

U kunt het resultaat van een zoekopdracht tellen door de zoekcriteria door te geven.

Voorbeeld:

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

Resultaat:

4

In dit voorbeeld kwamen we erachter dat er vier honden in de collectie zijn.

Laten we het aantal van een andere zoekopdracht controleren. Deze keer zullen we ontdekken hoeveel huisdieren een groter gewicht hebben dan een bepaald aantal.

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

Resultaat:

3

Beperk het aantal

U kunt de limit . gebruiken parameter om een ​​maximum aantal te tellen documenten op te geven.

Voorbeeld:

db.pets.count( {}, { limit: 5 } )

Resultaat:

5

We hebben eerder gezien dat er eigenlijk 7 documenten in deze collectie zitten, maar in dit voorbeeld hebben we het beperkt tot maximaal 5.

Als de limiet hoger is dan de werkelijke telling, wordt het resultaat niet beïnvloed door de limit argument.

Voorbeeld:

db.pets.count( {}, { limit: 10 } )

Resultaat:

7

Documenten overslaan

U kunt tellen met de skip parameter om een ​​aantal documenten over te slaan alvorens te tellen.

Voorbeeld:

db.pets.count( {}, { skip: 5 } )

Resultaat:

2

Beëindiging

Merk op dat de MongoDB-documentatie het volgende vermeldt:

MongoDB-stuurprogramma's die compatibel zijn met de 4.0-functies depreciëren hun respectieve cursor en verzameling count() API's voor nieuwe API's voor countDocuments() en estimatedDocumentCount() . Zie de driverdocumentatie voor de specifieke API-namen voor een bepaalde driver.

Meer informatie

De db.collection.count() methode is een wrapper voor de count commando.

De db.collection.count() methode accepteert andere parameters, zoals hint , maxTimeMS , readConcern , en collation .

Zie de MongoDB-documentatie voor meer informatie.


  1. Hoe stel ik de leestime-out in op de node redis-client?

  2. Installeer phpredis MAC OSX

  3. MongoDB:tel het aantal items in een array

  4. configureer redis auth op sidekiq