In MongoDB is de $toLower
aggregatiepijplijnoperator converteert een tekenreeks naar kleine letters en retourneert het resultaat.
Voorbeeld
Stel dat we een verzameling hebben met de naam pets
met de volgende documenten:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
We kunnen de $toLower
. gebruiken operator om die velden om te zetten naar tekenreeksen in kleine letters en het resultaat te retourneren.
Hier is een voorbeeld van het retourneren van de name
en type
velden in kleine letters:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: "$weight"
}
}
]
)
Resultaat:
{ "_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 dit geval waren de meeste tekens in het begin kleine letters, maar het eerste teken was hoofdletter. In alle gevallen werden die tekens omgezet in kleine letters en werd het resultaat geretourneerd.
Niet-strings converteren
U kunt $toLower
. gebruiken op waarden die niet noodzakelijk strings zijn. Het argument kan elke uitdrukking zijn, zolang het maar wordt omgezet in een tekenreeks.
We kunnen bijvoorbeeld $toLower
. gebruiken om het weight
om te rekenen veld naar een kleine tekenreeks, ook al bevat dat veld alleen cijfers.
Voorbeeld:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: { $toLower: "$weight" }
}
}
]
)
Resultaat:
{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : "20" } { "_id" : 2, "name" : "bark", "type" : "dog", "weight" : "10" } { "_id" : 3, "name" : "meow", "type" : "cat", "weight" : "7" }
We kunnen zien dat het weight
veld is geconverteerd naar een tekenreeks, omdat het nu tussen aanhalingstekens staat. Aangezien dit veld echter alleen cijfers bevat, is er geen effect in kleine letters - cijfers hebben geen hoofdletters en kleine letters, en dus kunnen we geen verschil zien met betrekking tot hoofdletters.
Als we het getal eenvoudig naar een tekenreeks wilden converteren, hadden we de $toString
. kunnen gebruiken operator of zelfs de $convert
telefoniste.