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.