Dans MongoDB, le $toUpper
L'opérateur de pipeline d'agrégation convertit une chaîne en majuscules 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 $toUpper
pour convertir ces champs en chaînes majuscules et renvoyer le résultat.
Voici un exemple de renvoi du name
et type
champs en majuscule :
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$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 }
Convertir des non-chaînes
Vous pouvez utiliser $toUpper
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 $toUpper
pour convertir le weight
champ en une chaîne en majuscule, même si ce champ ne contient que des chiffres.
Exemple :
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: { $toUpper: "$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 nombres, il n'y a pas d'effet majuscule - 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
opérateur ou même le $convert
opérateur.