В MongoDB, $toLower
Операторът на конвейера за агрегиране преобразува низ в малки букви и връща резултата.
Пример
Да предположим, че имаме колекция, наречена 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 }
Можем да използваме $toLower
оператор за преобразуване на тези полета в низове с малки букви и връщане на резултата.
Ето пример за връщане на name
и type
полета с малки букви:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$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 }
В този случай повечето от знаците са били с малки букви като начало, но първият символ е с главни. Във всички случаи тези знаци са преобразувани в малки и резултатът е върнат.
Преобразуване на не-низове
Можете да използвате $toLower
върху стойности, които не са непременно низове. Аргументът може да бъде всеки израз, стига да се разрешава до низ.
Например, можем да използваме $toLower
за да преобразувате weight
поле към низ с малки букви, въпреки че това поле съдържа само числа.
Пример:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: { $toLower: "$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
оператор.