I MongoDB er $toUpper
aggregeringspipeline-operatør konverterer en streng til store 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 $toUpper
operator for at konvertere disse felter til store bogstaver og returnere resultatet.
Her er et eksempel på returnering af name
og type
felter med store bogstaver:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$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 }
Konvertering af ikke-strenge
Du kan bruge $toUpper
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 $toUpper
for at konvertere weight
felt til en streng med store bogstaver, selvom det felt kun indeholder tal.
Eksempel:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: { $toUpper: "$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 store 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.