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.