Chỉ mục một phần MongoDB không bằng

Các chỉ mục hỗ trợ thực thi hiệu quả các truy vấn trong MongoDB. Để tạo chỉ mục trên một trường hoặc nhiều trường, hãy chuyển tài liệu đặc tả chỉ mục cho phương thức

Trình điều khiển Java MongoDB cung cấp lớp

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
7 bao gồm các phương thức xuất xưởng tĩnh để tạo tài liệu đặc tả chỉ mục cho các loại khóa Chỉ mục MongoDB khác nhau

Ghi chú

MongoDB chỉ tạo một chỉ mục nếu một chỉ mục có cùng thông số kỹ thuật chưa tồn tại

điều kiện tiên quyết

  • Bao gồm các câu lệnh nhập sau

     import com.mongodb.client.MongoClient;
     import com.mongodb.client.MongoClients;
     import com.mongodb.client.MongoDatabase;
     import com.mongodb.client.MongoCollection;
     import org.bson.Document;
    
     import com.mongodb.client.model.Indexes;
     import com.mongodb.client.model.IndexOptions;
     import com.mongodb.client.model.Filters;
    

Kết nối với Triển khai MongoDB

Kết nối với triển khai MongoDB, khai báo và xác định một phiên bản

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
8 và một phiên bản
MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
9

Ví dụ: bao gồm mã sau để kết nối với triển khai MongoDB độc lập chạy trên máy chủ cục bộ trên cổng

collection.createIndex(Indexes.ascending("name"));
0 và xác định
collection.createIndex(Indexes.ascending("name"));
1 để tham chiếu cơ sở dữ liệu
collection.createIndex(Indexes.ascending("name"));
2 và
collection.createIndex(Indexes.ascending("name"));
3 để tham chiếu bộ sưu tập
collection.createIndex(Indexes.ascending("name"));
4

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");

Để biết thêm thông tin về cách kết nối với MongoDB, hãy xem Kết nối với MongoDB

chỉ số tăng dần

Để tạo thông số kỹ thuật cho chỉ mục tăng dần, hãy sử dụng phương pháp trợ giúp tĩnh

collection.createIndex(Indexes.ascending("name"));
5

Chỉ số tăng dần đơn

Ví dụ sau tạo chỉ mục tăng dần trên trường

collection.createIndex(Indexes.ascending("name"));
6

collection.createIndex(Indexes.ascending("name"));

Chỉ số tăng dần hợp chất

Ví dụ sau đây tạo chỉ mục ghép tăng dần trên trường

collection.createIndex(Indexes.ascending("name"));
7 và trường
collection.createIndex(Indexes.ascending("name"));
6

collection.createIndex(Indexes.ascending("stars", "name"));

Để biết cách khác để tạo chỉ mục ghép, hãy xem

Chỉ số giảm dần

Để tạo đặc điểm kỹ thuật của chỉ mục giảm dần, hãy sử dụng phương pháp trợ giúp tĩnh

collection.createIndex(Indexes.ascending("name"));
9

Chỉ mục khóa giảm dần đơn

Ví dụ sau tạo chỉ mục giảm dần trên trường

collection.createIndex(Indexes.ascending("name"));
7

collection.createIndex(Indexes.descending("stars"));

Hợp chất Descending Key Index

Ví dụ sau đây tạo chỉ mục ghép giảm dần trên trường

collection.createIndex(Indexes.ascending("name"));
7 và trường
collection.createIndex(Indexes.ascending("name"));
6

collection.createIndex(Indexes.descending("stars", "name"));

Để biết cách khác để tạo chỉ mục ghép, hãy xem

chỉ số hợp chất

Để tạo đặc điểm kỹ thuật cho chỉ mục phức hợp, hãy sử dụng phương thức trợ giúp tĩnh

collection.createIndex(Indexes.ascending("stars", "name"));
3

Ghi chú

Để tạo một đặc điểm kỹ thuật cho một chỉ mục phức hợp trong đó tất cả các khóa đều tăng dần, bạn có thể sử dụng phương thức. Để tạo một đặc điểm kỹ thuật cho một chỉ mục phức hợp trong đó tất cả các khóa giảm dần, bạn có thể sử dụng phương pháp

Ví dụ sau tạo một chỉ mục phức hợp với trường

collection.createIndex(Indexes.ascending("name"));
7 theo thứ tự giảm dần và trường
collection.createIndex(Indexes.ascending("name"));
6 theo thứ tự tăng dần

collection.createIndex(Indexes.compoundIndex(Indexes.descending("stars"), Indexes.ascending("name")));

Chỉ mục văn bản

MongoDB cung cấp các chỉ mục văn bản để hỗ trợ tìm kiếm văn bản nội dung chuỗi. Chỉ mục văn bản có thể bao gồm bất kỳ trường nào có giá trị là một chuỗi hoặc một mảng các phần tử chuỗi. Để tạo đặc tả cho chỉ mục văn bản, hãy sử dụng phương thức trợ giúp tĩnh

Ví dụ sau tạo một chỉ mục văn bản trên trường

collection.createIndex(Indexes.ascending("name"));
6

collection.createIndex(Indexes.text("name"));

Chỉ số băm

Để tạo một đặc điểm kỹ thuật cho chỉ mục chỉ mục được băm, hãy sử dụng phương thức trợ giúp tĩnh

Ví dụ sau tạo chỉ mục băm trên trường

collection.createIndex(Indexes.descending("stars"));
1

collection.createIndex(Indexes.hashed("_id"));

Chỉ mục không gian địa lý

Để hỗ trợ các truy vấn không gian địa lý, MongoDB hỗ trợ các chỉ mục không gian địa lý khác nhau

collection.createIndex(Indexes.descending("stars")); 2

Để tạo thông số kỹ thuật cho chỉ mục

collection.createIndex(Indexes.descending("stars"));
2, hãy sử dụng các phương thức trợ giúp tĩnh

Ví dụ sau tạo chỉ mục

collection.createIndex(Indexes.descending("stars"));
2 trên trường
collection.createIndex(Indexes.descending("stars"));
6

collection.createIndex(Indexes.geo2dsphere("contact.location"));

collection.createIndex(Indexes.descending("stars")); 7

Để tạo thông số kỹ thuật cho chỉ mục

collection.createIndex(Indexes.descending("stars"));
7, hãy sử dụng phương thức trợ giúp tĩnh

quan trọng

Chỉ mục 2d dành cho dữ liệu được lưu trữ dưới dạng điểm trên mặt phẳng hai chiều và dành cho các cặp tọa độ kế thừa được sử dụng trong MongoDB 2. 2 trở về trước

Ví dụ sau tạo chỉ mục

collection.createIndex(Indexes.descending("stars"));
7 trên trường
collection.createIndex(Indexes.descending("stars"));
6

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
0

địa lýHaystack

Để tạo thông số kỹ thuật cho chỉ mục

collection.createIndex(Indexes.descending("stars", "name"));
2, hãy sử dụng phương thức.
collection.createIndex(Indexes.descending("stars", "name"));
2 chỉ mục có thể cải thiện hiệu suất đối với các truy vấn sử dụng hình học phẳng

Ví dụ sau tạo chỉ mục

collection.createIndex(Indexes.descending("stars", "name"));
2 trên trường
collection.createIndex(Indexes.descending("stars", "name"));
6 và chỉ mục tăng dần trên trường
collection.createIndex(Indexes.ascending("name"));
7

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
1

Để truy vấn chỉ mục đống cỏ khô, hãy sử dụng lệnh

collection.createIndex(Indexes.descending("stars", "name"));
8

Chỉ mụcTùy chọn

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
2

Ngoài tài liệu đặc tả chỉ mục, phương thức có thể lấy tài liệu tùy chọn chỉ mục, chẳng hạn như để tạo chỉ mục duy nhất hoặc chỉ mục một phần

Trình điều khiển Java cung cấp lớp IndexOptions để chỉ định các tùy chọn chỉ mục khác nhau

Chỉ mục duy nhất

Phần sau chỉ định một tùy chọn để tạo một chỉ mục duy nhất trên các trường

collection.createIndex(Indexes.ascending("name"));
6 và
collection.createIndex(Indexes.ascending("name"));
7

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
3

Để biết thêm thông tin về các chỉ mục duy nhất, hãy xem Chỉ mục duy nhất

Chỉ mục một phần

Để tạo chỉ mục một phần, hãy bao gồm tùy chọn làm chỉ mục

Ví dụ sau tạo chỉ mục một phần trên tài liệu có trường

collection.createIndex(Indexes.compoundIndex(Indexes.descending("stars"), Indexes.ascending("name")));
3 bằng với
collection.createIndex(Indexes.compoundIndex(Indexes.descending("stars"), Indexes.ascending("name")));
4

MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection collection = database.getCollection("restaurants");
4

Để biết thêm thông tin về các chỉ mục một phần, xem Chỉ mục một phần

Nhận danh sách các chỉ mục trên Bộ sưu tập

Sử dụng phương pháp

collection.createIndex(Indexes.compoundIndex(Indexes.descending("stars"), Indexes.ascending("name")));
5 để lấy danh sách các chỉ mục. Sau đây liệt kê các chỉ mục trên bộ sưu tập

Tại sao việc có một chỉ mục sắp xếp một phần truy vấn lại hữu ích nếu nó không hiển thị tất cả các kết quả đã được sắp xếp?

Chỉ mục một phần lưu trữ thông tin về kết quả của truy vấn, thay vì trên toàn bộ cột, đó là chức năng của chỉ mục truyền thống. Điều này có thể tăng tốc đáng kể các truy vấn so với Chỉ mục truyền thống nếu truy vấn nhắm mục tiêu tập hợp các hàng mà chỉ mục một phần được tạo cho .

Chỉ mục một phần trong MongoDB là gì?

Chỉ mục một phần chỉ lập chỉ mục các tài liệu trong bộ sưu tập đáp ứng biểu thức bộ lọc được chỉ định . Bằng cách lập chỉ mục một tập hợp con của các tài liệu trong một bộ sưu tập, các chỉ mục một phần có yêu cầu lưu trữ thấp hơn và giảm chi phí hiệu suất để tạo và duy trì chỉ mục.

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

MongoDB hỗ trợ các chỉ mục phức hợp , trong đó một cấu trúc chỉ mục duy nhất chứa các tham chiếu đến nhiều trường [1] trong tài liệu của bộ sưu tập. Sơ đồ sau đây minh họa một ví dụ về chỉ số phức hợp trên hai trường. MongoDB áp đặt giới hạn 32 trường cho bất kỳ chỉ mục phức hợp nào.

Sự khác biệt giữa chỉ mục thưa thớt và một phần trong MongoDB là gì?

Chỉ mục một phần chỉ lập chỉ mục các tài liệu đáp ứng biểu thức bộ lọc đã chỉ định, trước 3. 2 loại chỉ mục gần nhất với một phần là chỉ mục thưa thớt . Chỉ mục thưa thớt chỉ lập chỉ mục các tài liệu trong đó (các) trường chỉ mục không bằng null. Chỉ mục thưa thớt là một công cụ tuyệt vời để tạo các chỉ mục nhỏ hơn và hiệu suất cao hơn.