I MongoDB, $toLower
aggregeringspipeline-operatör konverterar en sträng till gemener 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 $toLower
operatorn för att konvertera dessa fält till strängar med små bokstäver och returnera resultatet.
Här är ett exempel på hur du returnerar name
och type
fält med gemener:
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 det här fallet var de flesta av tecknen små bokstäver till att börja med, men det första tecknet var versaler. I alla fall konverterades dessa tecken till gemener och resultatet returnerades.
Konvertera icke-strängar
Du kan använda $toLower
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 $toLower
för att konvertera weight
fält till en gemen sträng, även om det fältet bara innehåller siffror.
Exempel:
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 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 gemener – 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.