Trong MongoDB, chỉ mục là cấu trúc dữ liệu đặc biệt lưu trữ một số thông tin liên quan đến tài liệu để MongoDB dễ dàng tìm đúng tệp dữ liệu. Các chỉ mục được sắp xếp theo giá trị của trường được chỉ định trong chỉ mục. Vì vậy, MongoDB cung cấp phương thức createIndex[] để tạo một hoặc nhiều chỉ mục trên các bộ sưu tập. Sử dụng phương pháp này, chúng ta có thể tạo các loại chỉ mục khác nhau như chỉ mục văn bản, chỉ mục 2dsphere, chỉ mục 2d, v.v. Phải có ba tham số đầu tiên là một tài liệu chứa các cặp trường và giá trị trong đó trường là khóa chỉ mục và giá trị mô tả loại chỉ mục cho trường đó và các tham số khác là tùy chọn
- Nếu bạn đang tạo một chỉ mục đã có, thì MongoDB sẽ không tạo lại chỉ mục hiện có
- Bạn có thể ẩn và bỏ ẩn một chỉ mục bằng cách sử dụng phương thức hideIndex[] và unhideIndex[]
cú pháp
db. Bộ sưu tập. Tên. tạo Index[
phím. {Field_name. 1/-1},
options : ,
commitQuorum :
]
Thông số
- Tham số đầu tiên là một tài liệu chứa các cặp trường và giá trị trong đó trường là khóa chỉ mục và giá trị mô tả loại chỉ mục cho trường đó. Đối với chỉ mục tăng dần trên một trường, hãy chỉ định giá trị 1 và đối với chỉ mục giảm dần, hãy chỉ định giá trị -1
- Những người khác là tùy chọn
Thông số tùy chọn
- Tùy chọn. Nó là một tập hợp các tùy chọn kiểm soát việc tạo chỉ mục. Loại tham số này là tài liệu
- cam kết. Đó là số lượng thành viên bộ bản sao biểu quyết mang dữ liệu tối thiểu
Tùy chọn
Trong phương thức createIndex[], tài liệu tùy chọn chứa một tập hợp các tùy chọn kiểm soát việc tạo chỉ mục. Các tùy chọn sau có sẵn cho tất cả các loại chỉ mục trừ khi được chỉ định khác và các tùy chọn này là tùy chọn
- lai lịch. Loại tham số này là boolean và nền. true hướng MongoDB xây dựng chỉ mục trong nền. Bản dựng nền không chặn hoạt động trên bộ sưu tập. MongoDB bỏ qua tùy chọn nền nếu được chỉ định
- độc nhất. Loại tham số này là boolean và chỉ định true để tạo một chỉ mục duy nhất. Giá trị mặc định là sai. Nó tạo một chỉ mục duy nhất để bộ sưu tập không chấp nhận việc chèn hoặc cập nhật các tài liệu trong đó giá trị khóa chỉ mục khớp với một giá trị hiện có trong chỉ mục
- Tên. Đó là tên của chỉ số. Loại tham số này là chuỗi. Nếu nó không được chỉ định, MongoDB sẽ tạo tên chỉ mục bằng cách nối tên của các trường được lập chỉ mục và thứ tự sắp xếp
- một phầnFilterExpression. Loại tham số này là một tài liệu. Nếu được chỉ định, chỉ mục chỉ tham chiếu đến các tài liệu khớp với biểu thức bộ lọc
- thưa thớt. Loại tham số này là boolean. Nếu đúng thì chỉ mục chỉ tham chiếu các tài liệu có trường được chỉ định. Giá trị mặc định là sai
- hết hạnSau giây. Loại tham số này là một số nguyên. Nó chỉ định một giá trị, tính bằng giây dưới dạng TTL để kiểm soát thời gian MongoDB lưu giữ các tài liệu trong bộ sưu tập này
- ẩn giấu. Loại tham số này là boolean. Đó là cờ xác định xem chỉ mục có bị ẩn khỏi công cụ lập kế hoạch truy vấn hay không. Bởi vì một chỉ mục ẩn không được đánh giá như là một phần của lựa chọn kế hoạch truy vấn. Giá trị mặc định của tham số này là sai
- Công cụ lưu trữ. Loại tham số này là một tài liệu. Nó cho phép người dùng định cấu hình công cụ lưu trữ trên cơ sở mỗi chỉ mục khi tạo chỉ mục
Một số chỉ mục có thể có các tùy chọn bổ sung chỉ được chỉ định cho loại đó như
Đối với chỉ mục văn bản
Tất cả các thông số này là tùy chọn
- tạ. Nó thuộc loại tài liệu và chứa các cặp trường và trọng số cho chỉ mục văn bản. Giá trị mặc định của tham số này là 1
- ngôn ngữ mặc định. Nó thuộc loại chuỗi và chỉ định ngôn ngữ xác định danh sách các từ dừng và các quy tắc cho trình tạo gốc và mã thông báo
- language_override. Nó thuộc loại chuỗi và chỉ định tên của các trường trong tài liệu chứa ngôn ngữ ghi đè cho tài liệu
- văn bảnChỉ mụcPhiên bản. Nó thuộc loại số nguyên và chỉ định số phiên bản chỉ mục văn bản
Đối với chỉ mục 2dsphere
2dsphereIndexPhiên bản. nó thuộc loại số nguyên và chỉ định số phiên bản chỉ mục 2dsphere. Nó là một tham số tùy chọn
Đối với chỉ mục 2d
Tất cả các thông số này là tùy chọn
- chút ít. Nó thuộc loại số nguyên và chỉ định số độ chính xác của giá trị geohash được lưu trữ của dữ liệu vị trí. Giá trị mặc định của tham số này là 26
- tối thiểu. Nó thuộc loại số và chỉ định ranh giới bao hàm phía dưới cho các giá trị kinh độ và vĩ độ. Giá trị mặc định của tham số này là -180. 0
- tối đa. Nó thuộc loại số và chỉ định ranh giới bao gồm cao hơn cho các giá trị kinh độ và vĩ độ. Giá trị mặc định của tham số này là -180. 0
Đối với chỉ mục geoHaystack
kích thước xô. Nó thuộc loại số và chỉ định số lượng đơn vị trong đó nhóm các giá trị cục bộ. Giá trị của tham số này phải lớn hơn 0.
Đối với chỉ mục ký tự đại diện
ký tự đại diện Phép chiếu. Nó thuộc loại tài liệu và cho phép người dùng bao gồm hoặc loại trừ các đường dẫn trường cụ thể khỏi chỉ mục ký tự đại diện. Nó chỉ hợp lệ nếu bạn đang tạo một chỉ mục ký tự đại diện. Nó là một tham số tùy chọn
ví dụ
Trong các ví dụ sau, chúng tôi đang làm việc với
cơ sở dữ liệu. gfg
bộ sưu tập. sinh viên
Tài liệu. Ba tài liệu chứa tên và ngôn ngữ mà họ quan tâm
- Tạo một chỉ mục mà không có tùy chọn.
db.student.createIndex[{name:1}]
Ở đây, chúng tôi tạo một chỉ mục tăng dần trên một trường [i. e. , tên] không có tùy chọn
- Tạo chỉ mục giảm dần trên ngôn ngữ trường đơn
db.student.createIndex[{language:-1}]
Ở đây, chúng tôi tạo một chỉ mục giảm dần trên một trường duy nhất [i. e. , ngôn ngữ]
- Tạo một chỉ mục trên nhiều trường
db.student.createIndex[{name:1,language:-1}]
Ở đây, chúng tôi tạo chỉ mục trên các trường bội số [i. e. , Chỉ mục tăng dần trên tên và Chỉ mục giảm dần trên trường ngôn ngữ] sử dụng phương thức createIndex[]
- Tạo một chỉ mục duy nhất bằng các tùy chọn
db.student.createIndex[{name:1},{unique:true}]
Ở đây, chúng tôi đang tạo một chỉ mục duy nhất để bộ sưu tập không chấp nhận việc chèn hoặc cập nhật tài liệu trong đó giá trị khóa chỉ mục khớp với giá trị hiện có trong chỉ mục