Có một số cách để giảm chỉ mục trong MongoDB, một trong số đó là sử dụng dropIndex()
phương pháp.
Nó khá đơn giản để sử dụng - chỉ cần chuyển tên của chỉ mục hoặc tài liệu định nghĩa / đặc điểm kỹ thuật của nó. Nếu đó là chỉ mục văn bản, bạn chỉ có thể chỉ định tên chỉ mục.
Chỉ mục mẫu
Giả sử chúng ta có một bộ sưu tập được gọi là bars
. Chúng ta có thể sử dụng getIndexes()
để xem nó có những chỉ mục nào:
db.bars.getIndexes()
Kết quả:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "location" : "2dsphere" }, "name" : "location_2dsphere", "2dsphereIndexVersion" : 3 }, { "v" : 2, "key" : { "name" : 1 }, "name" : "name_1", "hidden" : true } ]
Chúng ta có thể thấy rằng có ba chỉ mục trên các thanh bars
bộ sưu tập.
- Chỉ mục đầu tiên nằm trên
_id
đồng ruộng. MongoDB tạo một chỉ mục duy nhất trên_id
trong quá trình tạo tập hợp. Bạn không thể giảm chỉ số này. - Chỉ mục thứ hai là chỉ mục 2dsphere trên
location
lĩnh vực này. - Chỉ mục thứ ba nằm trên
name
đồng ruộng. Trong trường hợp này, nó là một chỉ mục ẩn (it’s got"hidden" : true
trong đặc điểm kỹ thuật của nó).
Thả chỉ mục theo tên
Dưới đây là một ví dụ về việc giảm một chỉ mục bằng cách chuyển tên của nó vào dropIndex()
phương pháp:
db.bars.dropIndex("location_2dsphere")
Đầu ra:
{ "nIndexesWas" : 3, "ok" : 1 }
Điều này cho chúng tôi biết rằng chỉ mục đã bị loại bỏ thành công.
Thả một chỉ mục theo thông số kỹ thuật của nó
Dưới đây là một ví dụ về việc giảm một chỉ mục bằng cách chuyển tài liệu đặc tả của nó đến dropIndex()
phương pháp:
db.bars.dropIndex( { "name" : 1 } )
Đầu ra:
{ "nIndexesWas" : 2, "ok" : 1 }
Chúng ta có thể thấy rằng chỉ số này cũng đã bị giảm.
Bạn sẽ nhớ lại rằng đây là chỉ mục đã bị ẩn. Bạn có thể bỏ chỉ mục ẩn mà không gặp vấn đề gì (bạn không cần phải hiện chúng trước khi thả).
Kiểm tra kết quả
Hãy chạy getIndexes()
một lần nữa để xem kết quả:
db.bars.getIndexes()
Kết quả:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
Lần này chỉ có một chỉ mục - _id
mặc định chỉ mục.
dropIndex()
phương thức là một trình bao bọc xung quanh dropIndexes
lệnh.
Tài liệu MongoDB
Xem tài liệu MongoDB để biết thêm thông tin về dropIndex()
phương pháp.