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

Mongo chỉ mục duy nhất không phân biệt chữ hoa chữ thường

Trước MongoDB phiên bản 3.4 chúng tôi không thể tạo chỉ mục phân biệt chữ hoa chữ thường .

Trong phiên bản 3.4 có collation tùy chọn cho phép người dùng chỉ định quy tắc theo ngôn ngữ cụ thể cho so sánh chuỗi , chẳng hạn như các quy tắc cho chữ cái và dấu trọng âm.

Tùy chọn đối chiếu có cú pháp sau:

Đối chiếu
collation: {
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

nơi ngôn ngữ trường là bắt buộc ; tất cả các trường khác là tùy chọn .

Để tạo chỉ mục không phân biệt chữ hoa chữ thường, chúng tôi cần sử dụng trường bắt buộc ngôn ngữ sức mạnh trường cho mức so sánh chuỗi. strength cho phép cơn thịnh nộ giá trị 1 - 5 . đọc thêm về đối chiếu

Thuộc tính độ mạnh xác định xem trọng âm hoặc chữ hoa được tính đến khi đối chiếu hoặc đối sánh văn bản

Ví dụ:

nếu sức mạnh =1 thì role =Role =rôle

nếu sức mạnh =2 thì role =Role

nếu sức mạnh =3 sau đó đến role

Tài liệu cấp độ so sánh

Vì vậy, chúng ta cần sử dụng strength=2 để tạo chỉ mục. như:

db.collectionName.createIndex(
  { name: 1, formula: 1, type: 1 },
  { 
    name: "fertilizer_idx",
    collation: {locale: "en", strength: 2},
    unique: true
  }
)

N.B :collation không có tùy chọn cho văn bản chỉ mục.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:cập nhật vô điều kiện?

  2. Quy trình tổng hợp Mongodb cách hạn chế đẩy nhóm

  3. Cách sử dụng MongoDB Stitch trong ứng dụng Android

  4. Có thể lấy các trường theo thứ tự chiếu trong mongo Aggregation Frameworks không

  5. quá nhiều tệp đang mở trong máy chủ mgo go