Geben Sie eindeutige Werte in MongoDB zurück
-
die
distinct()
-Funktion in MongoDB -
Verwenden Sie die Funktion
distinct()
, um eindeutige Werte zurückzugeben - Geben Sie eindeutige oder unterschiedliche Werte für ein Feld in MongoDB zurück
- Geben Sie eindeutige Werte für ein eingebettetes Feld in MongoDB zurück
- Zurückgeben eindeutiger Werte für ein eingebettetes Array-Feld
In diesem Artikel behandeln wir, wie Sie eindeutige Werte mit der MongoDB-Methode distinct()
zurückgeben. Darüber hinaus wird auch die Rückgabe eindeutiger Werte in Arrays und Feldern besprochen.
In MongoDB möchten Sie möglicherweise manchmal eindeutige Werte rendern oder zurückgeben, und Sie können dies erreichen, indem Sie die Methode distinct()
verwenden.
Die Methode distinct()
erzeugt ein Array unterschiedlicher Werte für ein bestimmtes Feld über alle Sammlungen oder Ansichten in einer einzelnen Sammlung oder Ansicht hinweg und unterstützt Sie bei der Rückgabe eindeutiger Werte für ein in der Mongo-Shell angegebenes Feld.
die distinct()
-Funktion in MongoDB
Syntax:
db.collection.distinct(field, query, options)
In MongoDB muss die Funktion zwei notwendige Parameter haben, die als Feld- und Abfrageoperator bezeichnet werden. Der Feldparameter ist ein Feld, in dem die Methode distinct()
die eindeutigen Werte abrufen soll.
Der Abfrageparameter gibt die Dokumente an, aus denen die eindeutigen Werte abgerufen werden sollen. Sie können der Funktion einen Sicherheitsoptionsparameter senden.
Beachten Sie, dass, wenn der Wert des angegebenen Felds ein Array ist, distinct()
jedes Array-Element als separaten Wert behandelt. Wenn ein Feld beispielsweise den Wert [10, [10], 10]
hat, behandelt distinct()
10
, [10]
und 10
als separate Werte.
Verwenden Sie die Funktion distinct()
, um eindeutige Werte zurückzugeben
Lassen Sie uns die Funktion distinct()
verwenden, um eindeutige Werte in MongoDB zurückzugeben. Die folgende Sammlung wird für das erste Beispiel verwendet.
db.movies.find().pretty()
{
"_id" : ObjectId("60322d3501cd70079c48cb65"),
"title" : "Enchanted",
"year" : 2006,
"score" : 10,
"rating" : "PG",
"__v" : 0
}
{
"_id" : ObjectId("60322d3501cd70079c48cb67"),
"title" : "Final Destination II",
"year" : 2015,
"score" : 10,
"rating" : "PG-13",
"__v" : 0
}
{
"_id" : ObjectId("6190189ef5c8903629012fe1"),
"title" : "Fifty Shades of Grey",
"year" : 2015,
"score" : 10,
"rating" : "NC-17",
"__v" : 0
}
Geben Sie eindeutige oder unterschiedliche Werte für ein Feld in MongoDB zurück
Die obige Filmsammlung gibt in diesem Beispiel eindeutige Werte für das angegebene Feld zurück. Angenommen, Sie möchten eindeutige Werte aus dem Bewertungsfeld.
Anfrage:
db.movies.distinct( "rating" )
[ null, "", "NC-17", "PG", "PG-13"]
Nachdem Sie die obige Abfrage verwendet haben, hat Ihnen die Funktion distinct()
erfolgreich geholfen, eindeutige Werte in MongoDB für eine Sammlung zurückzugeben.
Geben Sie eindeutige Werte für ein eingebettetes Feld in MongoDB zurück
In diesem Beispiel wird die Rückgabe eindeutiger Werte für ein eingebettetes Feld gezeigt. Die im vorherigen Beispiel verwendete Sammlung enthielt jedoch keine eingebetteten Felder.
Daher wird eine neue Sammlung verwendet, wie unten gezeigt.
db.drones.find().pretty()
{
"_id" : ObjectId("61673f46b34f185eb7b2bf0c"),
"utility" : [
"Natural Resource Exploration",
"Remote sensing",
"Real estate and construction",
"Recreation",
"Delivery"
],
"onSale" : false,
"name" : "Nimbari Gryphon Medeta 65",
"price" : 77500,
"weight" : "77 kilograms",
"additionalDetails" : {
"material" : "carbon fiber",
"moreUses" : [
"Precision Agriculture",
"Land Inspection",
"Water Inspection",
"Cinematography"
]
}
}
{
"_id" : ObjectId("61673f46b34f185eb7b2bf0d"),
"utility" : [
"Natural Resource Exploration",
"Remote sensing",
"Real estate and construction",
"Recreation",
"Delivery"
],
"onSale" : false,
"name" : "X-Strimmer Eye",
"price" : 23500,
"weight" : "24 kilograms",
"additionalDetails" : {
"material" : "glass fiber",
"moreUses" : [
"Precision Agriculture",
"Cinematography"
]
}
}
{
"_id" : ObjectId("61673f46b34f185eb7b2bf0e"),
"utility" : [
"Natural Resource Exploration",
"Remote sensing",
"Real estate and construction",
"Recreation",
"Delivery"
],
"onSale" : false,
"name" : "Khai Balemosh Shefqa TRX",
"price" : 120500,
"weight" : "80 kilograms",
"additionalDetails" : {
"material" : "aluminum",
"moreUses" : [
"Precision Agriculture",
"Land Inspection"
]
}
}
Die folgende Abfrage kann eindeutige Werte aus allen eingebetteten Feldern aus der obigen Datenbanksammlung zurückgeben.
Anfrage:
db.drones.distinct( "additionalDetails.material" )
[ "aluminum", "carbon fiber", "glass fiber"]
Zurückgeben eindeutiger Werte für ein eingebettetes Array-Feld
Mit der Funktion distinct()
können Sie dieselbe Sammlung oben verwenden, um mit der Funktion distinct()
eindeutige Werte aus einem eingebetteten Array-Feld zurückzugeben.
Anfrage:
db.drones.distinct( "additionalDetails.moreUses" )
["Cinematography","Land Inspection"]
In diesem MongoDB-Tutorial-Artikel erhalten Sie einen detaillierten Überblick über unterschiedliche Funktionen mit Sammlungen. Das Zurückgeben eindeutiger Werte in Arrays und Feldern oder eingebetteten Feldern wird auch mit Codesegmenten erklärt.
Verwandter Artikel - MongoDB Query
- Abfrage mit mehreren Bedingungen in MongoDB
- Abfrage mit Zeichenfolgenlänge in MongoDB
- Abfrage nach Dokumenten mit einer Array-Größe größer als 1 in MongoDB
- Abfragen ohne Berücksichtigung der Groß-/Kleinschreibung in MongoDB
- Alle Abfragen in MongoDB protokollieren
- Datumsabfrage mit ISODate in MongoDB