Trong MongoDB, $toLower
toán tử đường ống tổng hợp chuyển đổi một chuỗi thành chữ thường và trả về kết quả.
Ví dụ
Giả sử chúng ta có một bộ sưu tập có tên là pets
với các tài liệu sau:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 }
Chúng ta có thể sử dụng $toLower
toán tử để chuyển đổi các trường đó thành chuỗi chữ thường và trả về kết quả.
Dưới đây là một ví dụ về việc trả lại name
và type
các trường ở dạng chữ thường:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: "$weight"
}
}
]
)
Kết quả:
{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : 20 } { "_id" : 2, "name" : "bark", "type" : "dog", "weight" : 10 } { "_id" : 3, "name" : "meow", "type" : "cat", "weight" : 7 }
Trong trường hợp này, hầu hết các ký tự bắt đầu là chữ thường, nhưng ký tự đầu tiên là chữ hoa, Trong mọi trường hợp, các ký tự đó được chuyển đổi thành chữ thường và kết quả được trả về.
Chuyển đổi không phải chuỗi
Bạn có thể sử dụng $toLower
trên các giá trị không nhất thiết phải là chuỗi. Đối số có thể là bất kỳ biểu thức nào miễn là nó phân giải thành một chuỗi.
Ví dụ:chúng ta có thể sử dụng $toLower
để chuyển đổi weight
trường thành một chuỗi chữ thường, mặc dù trường đó chỉ chứa số.
Ví dụ:
db.pets.aggregate(
[
{
$project:
{
name: { $toLower: "$name" },
type: { $toLower: "$type" },
weight: { $toLower: "$weight" }
}
}
]
)
Kết quả:
{ "_id" : 1, "name" : "wag", "type" : "dog", "weight" : "20" } { "_id" : 2, "name" : "bark", "type" : "dog", "weight" : "10" } { "_id" : 3, "name" : "meow", "type" : "cat", "weight" : "7" }
Chúng ta có thể thấy rằng weight
trường đã được chuyển đổi thành một chuỗi, vì nó hiện được bao quanh bởi dấu ngoặc kép. Tuy nhiên, do trường này chỉ chứa các số nên không có hiệu ứng chữ thường - các số không có chữ hoa và chữ thường, vì vậy chúng tôi không thể thấy bất kỳ sự khác biệt nào về cách viết hoa.
Nếu chúng ta chỉ muốn chuyển đổi số thành một chuỗi, chúng ta có thể sử dụng $toString
toán tử hoặc thậm chí $convert
nhà điều hành.