I MongoDB er $toLower
aggregeringspipeline-operatør konverterer en streng til små bogstaver og returnerer resultatet.
Eksempel
Antag, at vi har en samling kaldet pets
med følgende dokumenter:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
Vi kan bruge $toLower
operatør for at konvertere disse felter til små bogstaver og returnere resultatet.
Her er et eksempel på returnering af name
og type
felter med små bogstaver:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: "$weight"
}
}
]
)
Resultat:
{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : 20 } { "_id" : 2, "name" : "bark", "type" : "dog", "weight" : 10 } { "_id" : 3, "name" : "meow", "type" : "cat", "weight" : 7 }
I dette tilfælde var de fleste af tegnene små bogstaver til at begynde med, men det første tegn var store bogstaver. I alle tilfælde blev disse tegn konverteret til små bogstaver, og resultatet blev returneret.
Konvertering af ikke-strenge
Du kan bruge $toLower
på værdier, der ikke nødvendigvis er strenge. Argumentet kan være et hvilket som helst udtryk, så længe det løses til en streng.
For eksempel kan vi bruge $toLower
for at konvertere weight
felt til en streng med små bogstaver, selvom det felt kun indeholder tal.
Eksempel:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: { $toLower: "$weight" }
}
}
]
)
Resultat:
{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : "20" } { "_id" : 2, "name" : "bark", "type" : "dog", "weight" : "10" } { "_id" : 3, "name" : "meow", "type" : "cat", "weight" : "7" }
Vi kan se, at weight
felt blev konverteret til en streng, fordi det nu er omgivet af anførselstegn. Men da dette felt kun indeholder tal, er der ingen effekt med små bogstaver – tal har ikke store og små bogstaver, og vi kan derfor ikke se nogen forskel i forhold til store og små bogstaver.
Hvis vi blot ville konvertere tallet til en streng, kunne vi have brugt $toString
operatoren eller endda $convert
operatør.