В MongoDB, $toUpper
Операторът на конвейера за агрегиране преобразува низ в главни букви и връща резултата.
Пример
Да предположим, че имаме колекция, наречена pets
със следните документи:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
Можем да използваме $toUpper
оператор за преобразуване на тези полета в низове с главни букви и връщане на резултата.
Ето пример за връщане на name
и type
полета с главни букви:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: "$weight"
}
}
]
)
Резултат:
{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : 20 } { "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : 10 } { "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : 7 }
Преобразуване на не-низове
Можете да използвате $toUpper
върху стойности, които не са непременно низове. Аргументът може да бъде произволен израз, стига да се разрешава в низ.
Например, можем да използваме $toUpper
за да преобразувате weight
поле към низ с главни букви, въпреки че това поле съдържа само числа.
Пример:
db.pets.aggregate(
[
{
$project:
{
name: { $toUpper: "$name" },
type: { $toUpper: "$type" },
weight: { $toUpper: "$weight" }
}
}
]
)
Резултат:
{ "_id" : 1, "name" : "WAG", "type" : "DOG", "weight" : "20" } { "_id" : 2, "name" : "BARK", "type" : "DOG", "weight" : "10" } { "_id" : 3, "name" : "MEOW", "type" : "CAT", "weight" : "7" }
Можем да видим, че weight
полето е преобразувано в низ, защото вече е заобиколено от кавички. Въпреки това, като се има предвид, че това поле съдържа само числа, няма ефект с главни букви – числата нямат главни и малки букви и затова не можем да видим никаква разлика по отношение на главния регистър.
Ако просто искахме да преобразуваме числото в низ, бихме могли да използваме $toString
оператор или дори $convert
оператор.