In MongoDB, il $toUpper
l'operatore della pipeline di aggregazione converte una stringa in maiuscolo e restituisce il risultato.
Esempio
Supponiamo di avere una collezione chiamata pets
con i seguenti documenti:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
Possiamo usare il $toUpper
per convertire quei campi in stringhe maiuscole e restituire il risultato.
Ecco un esempio di restituzione del name
e type
campi in maiuscolo:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: "$weight"
}
}
]
)
Risultato:
{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : 20 } { "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : 10 } { "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : 7 }
Conversione di non stringhe
Puoi usare $toUpper
su valori che non sono necessariamente stringhe. L'argomento può essere qualsiasi espressione purché si risolva in una stringa.
Ad esempio, possiamo usare $toUpper
per convertire il weight
campo in una stringa maiuscola, anche se quel campo contiene solo numeri.
Esempio:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: { $toUpper: "$weight" }
}
}
]
)
Risultato:
{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : "20" } { "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : "10" } { "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : "7" }
Possiamo vedere che il weight
campo è stato convertito in una stringa, perché ora è racchiuso tra virgolette. Tuttavia, dato che questo campo contiene solo numeri, non c'è alcun effetto maiuscolo:i numeri non hanno maiuscolo e minuscolo, quindi non possiamo vedere alcuna differenza rispetto alle maiuscole.
Se volessimo semplicemente convertire il numero in una stringa, avremmo potuto usare $toString
o anche l'operatore $convert
operatore.