MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB $ toLower

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 nametype 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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose cập nhật mà không cần gọi lại

  2. Cách chuyển chế độ xem MongoDB thành Bộ sưu tập

  3. MongoError:không kết nối được với máy chủ trong lần kết nối đầu tiên

  4. Truy vấn MongoDB trên các trường được điền

  5. Dịch <T> có thể truy vấn trở lại IMongoQuery