Cách tạo chỉ mục trong PHP

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ần

    Ghi 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ị $options0 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 $options1 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

  • $options1

    Chỉ đị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

  • $options5

    Giá 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

  • $options6

    Tê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 $options7 sẽ được đặt tên là $options8 và một chỉ số không gian địa lý $options9 sẽ được đặt tên là system.indexes0. Đố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 $options6 có thể được sử dụng trong trường hợp đó để cung cấp tên ngắn hơn

  • system.indexes2

    Xâ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.indexes5

    Tù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.indexes7 (30 giây)

Tùy chọn sau có thể được sử dụng với MongoDB 2. 6+

  • system.indexes8

    Chỉ đị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.indexes9

    Chỉ đị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.indexes9 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ọng

    Ghi 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

  • keys3

    Xem Viết mối quan tâm. Giá trị mặc định cho MongoClient là 1

  • keys5

    Tù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 keys3 lớn hơn 1, 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ủa keys8 có thể được chỉ định để chặn vô thời hạn. Giá trị mặc định cho MongoClient là keys9 (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

  • 10

    không dùng nữa. Vui lòng sử dụng tùy chọn ghi mối quan tâm keys3

  • 12

    Bí danh không dùng nữa cho system.indexes5

  • 14

    Bí danh không dùng nữa cho keys5

返回值

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 (16), số lượng chỉ mục trước và sau thao tác (17 và 18) và liệu bộ sưu tập chứa chỉ mục đó đã được tạo chưa (19). Nếu chỉ mục đã tồn tại và không cần phải tạo, trường -10 có thể xuất hiện thay cho trường 18

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 16, 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 keys3 được đặt và ghi không thành công

Ném MongoCursor TimeoutException nếu tùy chọn keys3 đượ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()

-17

-18

-19

options0

options1

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 options2

Làm cách nào để tạo một mảng chỉ mục trong PHP?

Chỉ mục trong PHP là gì?

Mảng được lập chỉ mục PHP là một mảng được đại diện bởi một số chỉ mục theo mặc định . Tất cả các phần tử của mảng được đại diện bởi một số chỉ số bắt đầu từ 0. Mảng được lập chỉ mục PHP có thể lưu trữ số, chuỗi hoặc bất kỳ đối tượng nào. Mảng được lập chỉ mục PHP còn được gọi là mảng số.

Làm cách nào để lấy mảng chỉ mục trong PHP?

Chúng ta có thể lấy chỉ số mảng bằng cách sử dụng hàm array_search() . Hàm này được sử dụng để tìm kiếm phần tử đã cho. Nó sẽ chấp nhận hai tham số.

Làm cách nào để xác định chỉ mục trong PHP MySQL?

Trong MySQL, một chỉ mục có thể được tạo trên một bảng khi bảng được tạo bằng lệnh CREATE TABLE . Mặt khác, CREATE INDEX cho phép thêm chỉ mục vào các bảng hiện có. Chỉ mục nhiều cột có thể được tạo bằng nhiều cột. Các chỉ mục được hình thành bằng cách nối các giá trị của các cột đã cho.