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

MongoDB $toLower

In MongoDB ist der $toLower Der Aggregations-Pipeline-Operator wandelt eine Zeichenfolge in Kleinbuchstaben 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 $toLower verwenden -Operator, um diese Felder in Zeichenfolgen in Kleinbuchstaben umzuwandeln und das Ergebnis zurückzugeben.

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

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toLower: "$name" },
          type: { $toLower: "$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 }

In diesem Fall waren die meisten Zeichen zunächst Kleinbuchstaben, aber das erste Zeichen war Großbuchstaben. In allen Fällen wurden diese Zeichen in Kleinbuchstaben umgewandelt und das Ergebnis zurückgegeben.

Konvertieren von Nicht-Strings

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

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

Beispiel:

db.pets.aggregate(
  [
    {
      $project:
        { 
          name: { $toLower: "$name" },
          type: { $toLower: "$type" },
          weight: { $toLower: "$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 Kleinbuchstabeneffekt – 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.