Trước MongoDB phiên bản 3.4 chúng tôi không thể tạo chỉ mục 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ếucollation: {
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ữ và 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.