Trong MongoDB, bạn có thể tạo chỉ mục trên một bộ sưu tập bằng cách sử dụng createIndex()
, createIndexes()
hoặc createIndexes
lệnh quản trị.
createIndex()
Phương pháp
db.collection.createIndex()
phương thức tạo một chỉ mục trên bộ sưu tập được chỉ định. Nó là một trình bao bọc cho createIndexes
lệnh quản trị.
Ví dụ:
db.pets.createIndex( { weight: -1 } )
Điều này tạo ra một chỉ mục trên bộ sưu tập vật nuôi. Đây là chỉ số giảm dần trên weight
đồng ruộng. Chúng tôi biết nó đang giảm dần vì chúng tôi đã chỉ định -1
. Nếu chúng tôi đã chỉ định 1
nó sẽ tăng dần.
Chỉ mục kết hợp là chỉ mục được xác định trên nhiều trường. Bạn có thể tạo chỉ mục kết hợp bằng cách phân tách từng trường bằng dấu phẩy.
Ví dụ:
db.pets.createIndex( { name: 1, type: -1 } )
Điều này tạo ra một chỉ mục kết hợp trên name
trường (theo thứ tự tăng dần) và type
trường (theo thứ tự giảm dần).
createIndexes()
Phương pháp
db.collection.createIndexes()
phương thức tạo một hoặc nhiều chỉ mục trên một tập hợp Phương thức này cũng là một trình bao bọc cho createIndexes
lệnh quản trị.
Khi bạn tạo chỉ mục với createIndexes()
, bạn cần cung cấp các trường trong một mảng. Bạn cần làm điều này ngay cả khi bạn chỉ tạo một chỉ mục duy nhất.
Ví dụ:
db.pets.createIndexes( [ { weight: -1 } ] )
Điều đó làm tương tự như ví dụ đầu tiên. Nó tạo ra một chỉ mục giảm dần trên weight
trường.
Để tạo nhiều chỉ mục, hãy phân tách từng tài liệu của chỉ mục bằng dấu phẩy.
Ví dụ:
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
Bạn cũng có thể tạo chỉ mục kết hợp với createIndexes()
. Để thực hiện việc này, chỉ cần xác định chỉ mục kết hợp trong tài liệu cho chỉ mục đó.
Do đó, chúng tôi có thể làm như sau:
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
Điều đó tạo ra một chỉ mục kết hợp cho name
và type
và một chỉ mục riêng cho weight
trường.
createIndexes
Lệnh
createIndexes
lệnh quản trị tạo một hoặc nhiều chỉ mục trên một tập hợp Hai phương thức trước là các trình bao bọc xung quanh lệnh này.
Do đó, chúng ta có thể sử dụng createIndexes
lệnh để tạo các chỉ mục mà chúng ta đã làm trong các ví dụ trước.
Dưới đây là ví dụ về cách tạo chỉ mục trên name
lĩnh vực:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
Trong các ví dụ trước, chúng tôi để MongoDB đặt tên cho các chỉ mục của chúng tôi, nhưng trong trường hợp này, chúng tôi đặt tên chỉ mục là idx_name_1
.
Dưới đây là một ví dụ về việc tạo nhiều chỉ mục:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
Trong trường hợp này, chỉ mục đầu tiên là chỉ mục ghép trên name
và type
và chúng tôi đặt tên nó là idx_name_1_type_-1
.
Chỉ mục thứ hai nằm trên weight
và chúng tôi gọi nó là idx_weight_-1
.
Chỉ mục ký tự đại diện
Tất cả ba phương pháp trên đều hỗ trợ các chỉ mục ký tự đại diện kể từ MongoDB 4.2 (featureCompatibilityVersion
ít nhất phải là 4.2
để tạo chỉ mục ký tự đại diện).
Chỉ mục ký tự đại diện hữu ích cho các bộ sưu tập chứa dữ liệu phi cấu trúc với các trường khác nhau trong các phân cấp khác nhau.
Xem Cách tạo Chỉ mục ký tự đại diện trong MongoDB để biết ví dụ.
Tài liệu MongoDB
Dưới đây là các liên kết đến tài liệu MongoDB cho từng điều trên:
-
db.collection.createIndex()
-
db.collection.createIndexes()
-
createIndexes