Bộ sưu tập Mongo. createIndex - Tạo một chỉ mục trên [các] trường được chỉ định nếu nó chưa tồn tại
说明
MongoCollection công khai. tạo Index [ mảng $keys
[, mảng $options
= mảng[] ] ]. bool
Ghi chú
Phương thức này sẽ sử dụng lệnh cơ sở dữ liệu » createIndexes khi giao tiếp với MongoDB 2. 6+. Đối với các phiên bản cơ sở dữ liệu trước đó, phương thức sẽ thực hiện thao tác chèn trên bộ sưu tập
system.indexes
đặc biệt
参数
keys
Một mảng chỉ định các trường của chỉ mục làm khóa của nó. Đối với mỗi trường, giá trị là hướng chỉ mục hoặc » loại chỉ mục. Nếu chỉ định hướng, hãy chỉ định 1
để đi lên hoặc -1
để đi xuống
options
Một loạt các tùy chọn để tạo chỉ mục. Chúng tôi chuyển thẳng tất cả các tùy chọn đã cho đến máy chủ, nhưng danh sách không đầy đủ các tùy chọn hiện có bao gồm
"unique"
Chỉ định
TRUE
để tạo một chỉ mục duy nhất. Giá trị mặc định làFALSE
. Tùy chọn này chỉ áp dụng cho các chỉ mục tăng dần/giảm dầnGhi chú
Khi MongoDB lập chỉ mục một trường, nếu tài liệu không có giá trị cho trường đó, giá trị
$options
0 sẽ được lập chỉ mục. Nếu nhiều tài liệu không chứa một trường, một chỉ mục duy nhất sẽ từ chối tất cả trừ tài liệu đầu tiên trong số đó. Tùy chọn$options
1 có thể được sử dụng để khắc phục điều này, vì nó sẽ ngăn các tài liệu không có trường được lập chỉ mục$options
1Chỉ định
TRUE
để tạo chỉ mục thưa thớt, chỉ mục này chỉ lập chỉ mục cho các tài liệu chứa một trường được chỉ định. Giá trị mặc định làFALSE
$options
5Giá trị của tùy chọn này sẽ chỉ định số giây sau đó một tài liệu sẽ được coi là hết hạn và tự động bị xóa khỏi bộ sưu tập. Tùy chọn này chỉ tương thích với các chỉ mục trường đơn trong đó trường sẽ chứa các giá trị MongoDate
Ghi chú
Tính năng này có sẵn trong MongoDB 2. 2+. Xem » Hết hạn dữ liệu từ Bộ sưu tập bằng cách đặt TTL để biết thêm thông tin
$options
6Tên tùy chọn xác định duy nhất chỉ mục
Ghi chú
Theo mặc định, trình điều khiển sẽ tạo tên chỉ mục dựa trên [các] trường của chỉ mục và thứ tự hoặc loại. Ví dụ: một chỉ số hỗn hợp
$options
7 sẽ được đặt tên là$options
8 và một chỉ số không gian địa lý$options
9 sẽ được đặt tên làsystem.indexes
0. Đối với các chỉ mục có nhiều trường, tên được tạo có thể vượt quá tên của MongoDB. Tùy chọn$options
6 có thể được sử dụng trong trường hợp đó để cung cấp tên ngắn hơnsystem.indexes
2Xây dựng chỉ mục trong nền để việc xây dựng chỉ mục không chặn các hoạt động cơ sở dữ liệu khác. Chỉ định
TRUE
để xây dựng trong nền. Giá trị mặc định làFALSE
Cảnh báo
Trước MongoDB 2. 6. 0, các bản dựng chỉ mục trên phần phụ được thực thi dưới dạng hoạt động tiền cảnh, bất kể tùy chọn này là gì. Xem » Xây dựng chỉ mục với Bộ bản sao để biết thêm thông tin
system.indexes
5Tùy chọn này chỉ định giới hạn thời gian, tính bằng mili giây, cho giao tiếp ổ cắm. Nếu máy chủ không phản hồi trong khoảng thời gian chờ, một MongoCursorTimeoutException sẽ được ném ra và sẽ không có cách nào để xác định xem máy chủ có thực sự xử lý việc ghi hay không. Giá trị của
-1
có thể được chỉ định để chặn vô thời hạn. Giá trị mặc định cho MongoClient làsystem.indexes
7 [30 giây]
Tùy chọn sau có thể được sử dụng với MongoDB 2. 6+
system.indexes
8Chỉ định giới hạn thời gian tích lũy tính bằng mili giây để xử lý thao tác trên máy chủ [không bao gồm thời gian nhàn rỗi]. Nếu hoạt động không được hoàn thành bởi máy chủ trong khoảng thời gian chờ, một MongoExecutionTimeoutException sẽ được đưa ra
Các tùy chọn sau có thể được sử dụng với các phiên bản MongoDB trước 2. 8
system.indexes
9Chỉ định
TRUE
để buộc tạo một chỉ mục duy nhất trong đó bộ sưu tập có thể chứa các giá trị trùng lặp cho một khóa. MongoDB sẽ lập chỉ mục lần xuất hiện đầu tiên của khóa và xóa tất cả các tài liệu tiếp theo khỏi bộ sưu tập có chứa giá trị trùng lặp cho khóa đó. Giá trị mặc định làFALSE
Cảnh báo
system.indexes
9 có thể xóa dữ liệu khỏi cơ sở dữ liệu của bạn. Sử dụng hết sức thận trọngGhi chú
Tùy chọn này không được hỗ trợ trên MongoDB 2. 8+. Việc tạo chỉ mục sẽ không thành công nếu bộ sưu tập chứa các giá trị trùng lặp
Các tùy chọn sau có thể được sử dụng với các phiên bản MongoDB trước 2. 6
keys
3Xem Viết mối quan tâm. Giá trị mặc định cho MongoClient là
1
keys
5Tùy chọn này chỉ định giới hạn thời gian, tính bằng mili giây, để ghi xác nhận mối quan tâm. Nó chỉ được áp dụng khi
keys
3 lớn hơn1
, vì thời gian chờ liên quan đến sao chép. Nếu mối quan tâm ghi không được thỏa mãn trong thời hạn, một MongoCursorException sẽ được ném. Giá trị củakeys
8 có thể được chỉ định để chặn vô thời hạn. Giá trị mặc định cho MongoClient làkeys
9 [mười giây]
Các tùy chọn sau không được dùng nữa và không còn được sử dụng nữa
1
0không dùng nữa. Vui lòng sử dụng tùy chọn ghi mối quan tâm
keys
31
2Bí danh không dùng nữa cho
system.indexes
51
4Bí danh không dùng nữa cho
keys
5
返回值
Trả về một mảng chứa trạng thái tạo chỉ mục. Mảng chứa liệu thao tác có thành công hay không [1
6], số lượng chỉ mục trước và sau thao tác [1
7 và 1
8] và liệu bộ sưu tập chứa chỉ mục đó đã được tạo chưa [1
9]. Nếu chỉ mục đã tồn tại và không cần phải tạo, trường -1
0 có thể xuất hiện thay cho trường 1
8
Với MongoDB 2. 4 trở về trước, một tài liệu trạng thái chỉ được trả lại nếu mối quan tâm bằng văn bản ít nhất là 1
. Mặt khác, TRUE
được trả lại. Các trường trong tài liệu trạng thái là khác nhau, ngoại trừ trường 1
6, báo hiệu việc tạo chỉ mục có thành công hay không. Các trường bổ sung được mô tả trong tài liệu về MongoCollection. chèn[]
错误/异常
Ném MongoException nếu tên chỉ mục dài hơn 128 byte hoặc nếu đặc tả chỉ mục không phải là một mảng
Ném MongoDuplicateKeyException nếu máy chủ không thể tạo chỉ mục duy nhất do xung đột tài liệu
Ném MongoResultException nếu máy chủ không thể tạo chỉ mục do lỗi
Ném MongoCursorException nếu tùy chọn keys
3 được đặt và ghi không thành công
Ném MongoCursor TimeoutException nếu tùy chọn keys
3 được đặt thành giá trị lớn hơn một và thao tác mất nhiều thời gian hơn MongoCursor. $timeout mili giây để hoàn thành. Điều này không giết chết hoạt động trên máy chủ, đó là thời gian chờ phía máy khách. Hoạt động trong MongoCollection. $wtimeout là mili giây
范例
Ví dụ #1 MongoCollection. ví dụ tạo Index[]
-1
7
-1
8
-1
9
options
0
options
1
Ví dụ #2 Lập chỉ mục không gian địa lý
Mongodb hỗ trợ các chỉ mục không gian địa lý, cho phép bạn tìm kiếm các tài liệu gần một vị trí nhất định hoặc trong một hình dạng. Ví dụ sau tạo chỉ mục không gian địa lý trên trường options
2