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.