Làm cách nào để tạo chỉ mục trong MongoDB?

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

Làm cách nào để tạo chỉ mục trong MongoDB?

  • 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

Làm cách nào để tạo chỉ mục trong MongoDB?

  • 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ữ)

Làm cách nào để tạo chỉ mục trong MongoDB?

  • 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()

Làm cách nào để tạo chỉ mục trong MongoDB?

  • 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

Làm cách nào để tạo chỉ mục có tên trong MongoDB?

Theo mặc định, MongoDB sẽ tạo tên chỉ mục bằng cách ghép các khóa được lập chỉ mục với hướng của từng khóa trong chỉ mục bằng cách sử dụng dấu gạch dưới làm dấu phân cách. For example: {name: 1} will be created as name_1. The best option is to use the name option to define a custom index name when creating an index.

Làm cách nào để lấy chỉ mục trong MongoDB?

MongoDB – phương thức getIndexes()

Khi nào chúng ta nên tạo chỉ mục trong MongoDB?

Nếu đôi khi bạn chỉ truy vấn một khóa và vào những thời điểm khác, truy vấn trên khóa đó kết hợp với khóa thứ hai , thì việc tạo chỉ mục phức hợp sẽ hiệu quả hơn việc tạo một khóa đơn . MongoDB sẽ sử dụng chỉ mục phức hợp cho cả hai truy vấn. Ví dụ: bạn có thể tạo chỉ mục cho cả danh mục và mục.

Làm thế nào để tạo một chỉ mục?

Tạo chỉ mục .
Nhấp vào nơi bạn muốn thêm chỉ mục
Trên tab Tham khảo, trong nhóm Chỉ mục, bấm vào Chèn Chỉ mục
Trong hộp thoại Chỉ mục, bạn có thể chọn định dạng cho các mục nhập văn bản, số trang, tab và ký tự đường dẫn
Bạn có thể thay đổi giao diện tổng thể của chỉ mục bằng cách chọn từ menu thả xuống Định dạng