Chỉ số hợp chất MongoDB

Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về các chỉ mục phức hợp MongoDB và cách tạo chỉ mục phức hợp cho các trường trong một bộ sưu tập

Giới thiệu về các chỉ mục hợp chất MongoDB

Chỉ mục phức hợp là chỉ mục chứa tham chiếu đến nhiều trường của bộ sưu tập. Nói chung, một chỉ mục phức hợp có thể tăng tốc các truy vấn phù hợp trên nhiều trường

Để tạo chỉ mục ghép, bạn sử dụng phương thức

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
2 với cú pháp sau

db.collection.createIndex({ field1: type, field2: type, field3: type, ... });

Code language: JavaScript (javascript)

Trong cú pháp này, bạn chỉ định một tài liệu chứa các khóa chỉ mục (trường1, trường2, trường3…) và các loại chỉ mục

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
0 mô tả loại chỉ mục cho mỗi khóa chỉ mục. Ví dụ: loại

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
1 chỉ định một chỉ mục sắp xếp các mục theo thứ tự tăng dần trong khi

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
2 chỉ định một chỉ mục sắp xếp các mục theo thứ tự giảm dần

MongoDB cho phép bạn tạo một chỉ mục phức hợp chứa tối đa 32 trường

Điều quan trọng là phải hiểu rằng thứ tự của các trường được chỉ định trong chỉ mục tổng hợp là quan trọng

Nếu một chỉ mục ghép có hai trường. trường1 và trường2, nó chứa các tham chiếu đến tài liệu được sắp xếp theo trường1 trước. Và trong mỗi giá trị của trường1, nó có các giá trị được sắp xếp theo trường2

Bên cạnh việc hỗ trợ các truy vấn khớp với tất cả các khóa chỉ mục, một chỉ mục phức hợp có thể hỗ trợ các truy vấn khớp với tiền tố của các trường chỉ mục. Ví dụ: nếu một chỉ mục phức hợp chứa hai trường. trường1 và trường2, nó sẽ hỗ trợ các truy vấn trên

  • trường1
  • trường1 và trường2

Tuy nhiên, nó không hỗ trợ truy vấn chỉ khớp với

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
3

Ví dụ về chỉ mục hợp chất MongoDB

Hãy lấy ví dụ về việc sử dụng các chỉ số phức hợp

Đầu tiên, tạo một chỉ mục tổng hợp trên các trường

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
4 và

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
5 của bộ sưu tập

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
6

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)

đầu ra

title_1_year_1

Code language: JavaScript (javascript)

Thứ hai, tìm những bộ phim có tiêu đề chứa từ

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
7 và được phát hành vào năm 2014

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
1

đầu ra

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
2

Truy vấn sử dụng chỉ mục

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
8 thay vì quét toàn bộ bộ sưu tập để tìm kết quả

Thứ ba, tìm những bộ phim có tiêu đề chứa từ

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
7

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
5

đầu ra

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
6

Truy vấn này chỉ khớp với tiêu đề, không khớp với năm. Tuy nhiên, trình tối ưu hóa truy vấn vẫn sử dụng chỉ mục

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
8

Cuối cùng, tìm những bộ phim đã được phát hành trong năm 2014

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
8

đầu ra

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
9

Trong ví dụ này, trình tối ưu hóa truy vấn không sử dụng chỉ mục

db.movies.createIndex({ title: 1, year: 1 })

Code language: JavaScript (javascript)
8 mà quét toàn bộ bộ sưu tập (

title_1_year_1

Code language: JavaScript (javascript)
2) để tìm kết quả khớp

Chỉ số phức hợp trong MongoDB là gì?

Hay nói cách khác, chỉ mục phức hợp là những chỉ mục mà một trường chỉ mục duy nhất chứa tham chiếu đến nhiều trường . Trong MongoDB, chỉ mục phức hợp có thể chứa một trường chỉ mục được băm đơn lẻ, nếu một trường chứa nhiều hơn một trường chỉ mục được băm thì MongoDB sẽ báo lỗi.

Lập chỉ mục hợp chất là gì?

Chỉ mục hợp chất là chỉ mục không gian được tạo từ một số thuộc tính hoặc thuộc tính lồng nhau (a. k. a. đường dẫn) . Mỗi thuộc tính của một chỉ số phức hợp được gọi là một phân khúc và mỗi phân khúc được mô tả bằng đường dẫn của nó.

Công dụng của chỉ số Compound là gì?

Chỉ mục ghép là chỉ mục chứa tham chiếu đến nhiều trường trong tài liệu . Các chỉ mục hợp chất có một số tính chất thú vị. Chỉ mục có thể sử dụng được nếu bạn có truy vấn bao gồm quốc tịch, tuổi và tên. Nhưng nó cũng có thể trả lời các truy vấn khác bằng cách sử dụng chỉ mục.

MongoDB có thể sử dụng một phần của chỉ mục ghép không?

MongoDB có thể sử dụng giao điểm của các chỉ mục để thực hiện các truy vấn. Đối với các truy vấn chỉ định các điều kiện truy vấn phức hợp, nếu một chỉ mục có thể đáp ứng một phần của điều kiện truy vấn và một chỉ mục khác có thể đáp ứng một phần khác của điều kiện truy vấn, thì MongoDB có thể sử dụng giao điểm của hai chỉ mục để đáp ứng truy vấn