No MongoDB, o
$toUpper
operador de pipeline de agregação converte uma string em maiúscula e retorna o resultado. Exemplo
Suponha que tenhamos uma coleção chamada
pets
com os seguintes 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 o
$toUpper
operador para converter esses campos em strings maiúsculas e retornar o resultado. Aqui está um exemplo de como retornar o
name
e type
campos em maiú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 }
Conversão de não strings
Você pode usar
$toUpper
em valores que não são necessariamente strings. O argumento pode ser qualquer expressão, desde que resolva para uma string. Por exemplo, podemos usar
$toUpper
para converter o weight
campo para uma string maiúscula, mesmo que esse campo contenha apenas números. Exemplo:
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 o
weight
campo foi convertido em uma string, porque agora está entre aspas. No entanto, dado que este campo contém apenas números, não há efeito de maiúsculas – os números não têm maiúsculas e minúsculas e, portanto, não podemos ver nenhuma diferença em relação às maiúsculas. Se simplesmente quiséssemos converter o número em uma string, poderíamos ter usado o
$toString
operador ou mesmo o $convert
operador.