En MongoDB, el $toUpper
El operador de canalización de agregación convierte una cadena a mayúsculas y devuelve el resultado.
Ejemplo
Supongamos que tenemos una colección llamada pets
con los siguientes documentos:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
Podemos usar el $toUpper
operador para convertir esos campos en cadenas en mayúsculas y devolver el resultado.
Aquí hay un ejemplo de cómo devolver el name
y type
campos en mayúsculas:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: "$weight"
}
}
]
)
Resultado:
{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : 20 } { "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : 10 } { "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : 7 }
Conversión de no cadenas
Puedes usar $toUpper
en valores que no son necesariamente cadenas. El argumento puede ser cualquier expresión siempre que se resuelva en una cadena.
Por ejemplo, podemos usar $toUpper
para convertir el weight
campo a una cadena en mayúsculas, aunque ese campo solo contenga números.
Ejemplo:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: { $toUpper: "$weight" }
}
}
]
)
Resultado:
{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : "20" } { "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : "10" } { "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : "7" }
Podemos ver que el weight
El campo se convirtió en una cadena, porque ahora está entre comillas. Sin embargo, dado que este campo solo contiene números, no hay efecto de mayúsculas:los números no tienen mayúsculas ni minúsculas, por lo que no podemos ver ninguna diferencia con respecto al caso.
Si simplemente quisiéramos convertir el número en una cadena, podríamos haber usado $toString
operador o incluso el $convert
operador.