Dans MongoDB, le $toLower
l'opérateur de pipeline d'agrégation convertit une chaîne en minuscules et renvoie le résultat.
Exemple
Supposons que nous ayons une collection appelée pets
avec les documents suivants :
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
Nous pouvons utiliser le $toLower
pour convertir ces champs en chaînes minuscules et renvoyer le résultat.
Voici un exemple de renvoi du name
et type
champs en minuscules :
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: "$weight"
}
}
]
)
Résultat :
{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : 20 } { "_id" : 2, "name" : "bark", "type" : "dog", "weight" : 10 } { "_id" : 3, "name" : "meow", "type" : "cat", "weight" : 7 }
Dans ce cas, la plupart des caractères étaient en minuscules au départ, mais le premier caractère était en majuscule. Dans tous les cas, ces caractères ont été convertis en minuscules et le résultat a été renvoyé.
Convertir des non-chaînes
Vous pouvez utiliser $toLower
sur des valeurs qui ne sont pas nécessairement des chaînes. L'argument peut être n'importe quelle expression tant qu'il se résout en une chaîne.
Par exemple, nous pouvons utiliser $toLower
pour convertir le weight
champ en une chaîne en minuscules, même si ce champ ne contient que des chiffres.
Exemple :
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: { $toLower: "$weight" }
}
}
]
)
Résultat :
{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : "20" } { "_id" : 2, "name" : "bark", "type" : "dog", "weight" : "10" } { "_id" : 3, "name" : "meow", "type" : "cat", "weight" : "7" }
Nous pouvons voir que le weight
champ a été converti en chaîne, car il est maintenant entouré de guillemets. Cependant, étant donné que ce champ ne contient que des chiffres, il n'y a pas d'effet de minuscules - les nombres n'ont pas de majuscules et de minuscules, et nous ne pouvons donc pas voir de différence en ce qui concerne la casse.
Si nous voulions simplement convertir le nombre en chaîne, nous aurions pu utiliser le $toString
ou encore l'opérateur $convert
opérateur.