MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB $toUpper


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.