MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB $toUpper

In MongoDB ist der $toUpper Der Aggregations-Pipeline-Operator wandelt eine Zeichenfolge in Großbuchstaben um und gibt das Ergebnis zurück.

Beispiel

Angenommen, wir haben eine Sammlung namens pets mit folgenden Dokumenten:

{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }

Wir können den $toUpper verwenden -Operator, um diese Felder in Zeichenfolgen in Großbuchstaben umzuwandeln und das Ergebnis zurückzugeben.

Hier ist ein Beispiel für die Rückgabe des name und type Felder in Großbuchstaben:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toUpper: "$name" },
          type: { $toUpper: "$type" },
          weight: "$weight"
        }
    }
  ]
)

Ergebnis:

{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : 20 }
{ "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : 10 }
{ "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : 7 }

Konvertieren von Nicht-Strings

Sie können $toUpper verwenden auf Werte, die nicht unbedingt Zeichenfolgen sind. Das Argument kann ein beliebiger Ausdruck sein, solange er in einen String aufgelöst wird.

Zum Beispiel können wir $toUpper verwenden um das weight umzurechnen Feld in eine Zeichenfolge in Großbuchstaben, obwohl dieses Feld nur Zahlen enthält.

Beispiel:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toUpper: "$name" },
          type: { $toUpper: "$type" },
          weight: { $toUpper: "$weight" }
        }
    }
  ]
)

Ergebnis:

{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : "20" }
{ "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : "10" }
{ "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : "7" }

Wir können das weight sehen -Feld wurde in eine Zeichenfolge konvertiert, da es jetzt von Anführungszeichen umgeben ist. Da dieses Feld jedoch nur Zahlen enthält, gibt es keinen Großbuchstabeneffekt – Zahlen haben keine Groß- und Kleinschreibung, sodass wir keinen Unterschied in Bezug auf Groß- und Kleinschreibung feststellen können.

Wenn wir die Zahl einfach in einen String umwandeln wollten, hätten wir den $toString verwenden können Operator oder sogar der $convert Betreiber.