Geben Sie eindeutige Werte in MongoDB zurück

Tahseen Tauseef 20 Juni 2023
  1. die distinct()-Funktion in MongoDB
  2. Verwenden Sie die Funktion distinct(), um eindeutige Werte zurückzugeben
  3. Geben Sie eindeutige oder unterschiedliche Werte für ein Feld in MongoDB zurück
  4. Geben Sie eindeutige Werte für ein eingebettetes Feld in MongoDB zurück
  5. Zurückgeben eindeutiger Werte für ein eingebettetes Array-Feld
Geben Sie eindeutige Werte in MongoDB zurück

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