I MongoDB, $toUpper
aggregeringspipeline-operatör konverterar en sträng till versaler och returnerar resultatet.
Exempel
Anta att vi har en samling som heter pets
med följande dokument:
{ "_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 använda $toUpper
operatorn för att konvertera dessa fält till versaler och returnera resultatet.
Här är ett exempel på hur du returnerar name
och type
fält med versaler:
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 }
Konvertera icke-strängar
Du kan använda $toUpper
på värden som inte nödvändigtvis är strängar. Argumentet kan vara vilket uttryck som helst så länge det löser sig till en sträng.
Till exempel kan vi använda $toUpper
för att konvertera weight
fält till en versalsträng, även om det fältet bara innehåller siffror.
Exempel:
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 att weight
fältet konverterades till en sträng, eftersom det nu är omgivet av citattecken. Men med tanke på att det här fältet bara innehåller siffror, finns det ingen effekt med versaler – siffror har inte versaler och gemener, så vi kan inte se någon skillnad i förhållande till skiftläge.
Om vi bara ville konvertera numret till en sträng kunde vi ha använt $toString
operatorn eller till och med $convert
operatör.