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 nhauGhi 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"];
9Ví 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"]];
4MongoClient 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"]];
5Chỉ 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"]];
6collection.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"]];
6collection.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"]];
9Chỉ 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"]];
7collection.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"]];
6collection.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"]];
3Ghi 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ầncollection.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"]];
6collection.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"]];
1collection.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
collection.createIndex[Indexes.descending["stars"]];
Để 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ĩnhVí dụ sau tạo chỉ mục
collection.createIndex[Indexes.descending["stars"]];
2 trên trường collection.createIndex[Indexes.descending["stars"]];
6collection.createIndex[Indexes.geo2dsphere["contact.location"]];
collection.createIndex[Indexes.descending["stars"]];
7
collection.createIndex[Indexes.descending["stars"]];
Để 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ĩnhquan 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"]];
6MongoClient 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ẳngVí 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"]];
7MongoClient 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"]];
8Chỉ mụcTùy chọn
MongoClient mongoClient = MongoClients.create[];
MongoDatabase database = mongoClient.getDatabase["test"];
MongoCollection collection = database.getCollection["restaurants"];
2Ngoà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"]];
7MongoClient 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"]]];
4MongoClient 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