sql >> Database >  >> NoSQL >> MongoDB

MongoDB telling Commando

In MongoDB de count aggregatieopdracht telt het aantal documenten in een verzameling of een weergave.

Het geeft een document terug dat zowel de telling als de opdrachtstatus bevat.

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.runCommand( { count: "pets" } )

Resultaat:

{ "n" : 7, "ok" : 1 }

De MongoDB-documentatie raadt eigenlijk af om de count . te gebruiken commando en de bijbehorende wrapper-methoden zonder een query-predikaat. Dit komt omdat, wanneer het wordt uitgevoerd zonder een query-predicaat, het 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 het volgende formulier te gebruiken.

Voorbeeld:

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

Resultaat:

{ "n" : 4, "ok" : 1 }

In dit voorbeeld kunnen we zien dat er vier honden in de verzameling 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.runCommand( { count:'pets',
    query: { weight: { $gt: 10 } }
} )

Resultaat:

{ "n" : 3, "ok" : 1 }

Beperk het aantal

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

Voorbeeld:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 3
} )

Resultaat:

{ "n" : 3, "ok" : 1 }

We hebben eerder gezien dat er eigenlijk 4 honden zijn, maar in dit voorbeeld hebben we het beperkt tot maximaal 3.

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

Voorbeeld:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    limit: 10
} )

Resultaat:

{ "n" : 4, "ok" : 1 }

Documenten overslaan

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

Voorbeeld:

db.runCommand( { 
    count: "pets", 
    query: { type: "Dog" },
    skip: 2
} )

Resultaat:

{ "n" : 2, "ok" : 1 }

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 (die de count uitvoeren) command) ten gunste van nieuwe API's die overeenkomen met countDocuments() en estimatedDocumentCount() . Voor de specifieke API-namen voor een bepaalde driver, zie de driver API-documentatie.

Meer informatie

De count commando bevat andere velden, zoals hint , comment , readConcern , en collation .

Zie de MongoDB-documentatie voor meer informatie.


  1. MongoDB $aftrekken

  2. Hoe representeer je MongoDB GeoJSON-velden in een Mongoose-schema?

  3. Hoe de featureCompatibilityVersion in MongoDB in te stellen

  4. Wat is een Map Only-baan in Hadoop?