sql >> Database >  >> NoSQL >> MongoDB

3 manieren om verschillende waarden in MongoDB te retourneren

Onderscheidende waarden zijn die waarden waarbij overtollige duplicaten zijn verwijderd. Met andere woorden, onderscheidende waarden zijn unieke waarden.

In MongoDB zijn er een paar manieren waarop we verschillende waarden in een query kunnen retourneren. Dit artikel presenteert 3 manieren om verschillende waarden in de mongo-shell te retourneren.

Voorbeeldgegevens

De voorbeelden op deze pagina gebruiken de volgende verzameling genaamd 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 }

De distinct() Methode

In MongoDB is de db.collection.distinct() methode vindt de afzonderlijke waarden voor een opgegeven veld in een enkele verzameling of weergave en retourneert de resultaten in een array.

Voorbeeld:

db.pets.distinct( "type" )

Resultaat:

[ "Bat", "Cat", "Dog" ]

Deze drie waarden zijn de verschillende waarden voor het type veld in de bovenstaande documenten.

De pets part benoemt eenvoudig de verzameling waarvan de afzonderlijke waarden moeten worden geretourneerd.

De db.collection.distinct() methode is een shell-wrappermethode voor de distinct commando (hieronder).

De distinct Commando

In MongoDB, de distinct aggregation-opdracht vindt de afzonderlijke waarden voor een opgegeven veld in een enkele verzameling.

Het retourneert een document dat een array van de verschillende waarden bevat, evenals een ingesloten document met querystatistieken en het queryplan.

db.runCommand ( { distinct: "pets", key: "type" } )

Resultaat:

{ "values" : [ "Bat", "Cat", "Dog" ], "ok" : 1 }

We kunnen zien dat dezelfde afzonderlijke waarden worden geretourneerd, behalve dat ze deze keer in een document staan ​​dat ook de andere informatie bevat.

De $group Aggregatie-operator

Afhankelijk van uw behoeften, kunt u ook de $group . gebruiken aggregatie-operator om verschillende waarden te retourneren.

Voorbeeld:

db.pets.aggregate( [ { $group : { _id : "$type" } } ] )

Resultaat:

{ "_id" : "Cat" }
{ "_id" : "Bat" }
{ "_id" : "Dog" }

In dit geval worden de afzonderlijke waarden in afzonderlijke documenten geretourneerd.

Deze aanpak kan handig zijn als u verwacht dat uw resultaten groot zullen zijn. Als uw resultaten groter zijn dan de maximale BSON-grootte (16 megabytes op het moment van schrijven), moet u mogelijk deze aanpak gebruiken.


  1. MongoDB $toString

  2. Hoe verwijder je één 'document' op 'ID' met behulp van de officiële C#-driver voor MongoDB?

  3. 2 Helm-kaarten met gedeelde Redis-afhankelijkheid

  4. Nieuwe validator toevoegen aan bestaande collectie