No MongoDB, o
$toLower
operador de pipeline de agregação converte uma string em minú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
$toLower
operador para converter esses campos em strings minúsculas e retornar o resultado. Aqui está um exemplo de como retornar o
name
e type
campos em minúsculas:db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$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 }
Nesse caso, a maioria dos caracteres eram minúsculos para começar, mas o primeiro caractere era maiúsculo. Em todos os casos, esses caracteres foram convertidos em minúsculos e o resultado foi retornado.
Conversão de não strings
Você pode usar
$toLower
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
$toLower
para converter o weight
campo para uma string minúscula, mesmo que esse campo contenha apenas números. Exemplo:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: { $toLower: "$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, como este campo contém apenas números, não há efeito de minúsculas – os números não possuem maiúsculas e minúsculas, e por isso 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.