public bool MongoCollection::createIndex    ( array $keys   [, array $options = array()  ] )

MongoCollection::createIndex Creates an index on the specified field(s) if it does not already exist

keys

An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

options

An array of options for the index creation. We pass all given options straight to the server, but a non-exhaustive list of currently available options include:

  • "unique"

    Укажите TRUE для создания уникального индекса. По умолчанию значение равно FALSE. Эта опция применяется только к возрастающим/убывающим индексам.

    Замечание:

    При индексации MongoDB поля, если не имеет значения для указанного поля, будет проиндексировано значение NULL. Если несколько документов не содержат поля, то уникальный индекс отклонит все документы, кроме первого. Можно использовать опцию "sparse", чтобы обойти это ограничение, так как документы без указанного поля не будут индексироваться.

  • "sparse"

    Укажите TRUE для создания разреженного (sparse) индекса, который индексирует только документы содержащие указанное поле. Значение по умолчанию FALSE.

  • "expireAfterSeconds"

    Значение этой опции определяет количество секунд, после которого документ считается устаревшим и автоматически удаляется из коллекции. Эта опция совместима только с индексами на одно поле, где поле содержит значения MongoDate.

    Замечание:

    Эта опция доступна в MongoDB 2.2+. Смотрите » Устаревание данных в коллекциях с помощью задания TTL для получения более подробной информации.

  • "name"

    Необязательное имя, которое уникально идентифицирует индекс.

    Замечание:

    По умолчанию, драйвер создает имя индекса на основе полей индекса и их порядке или типе. Например, составной индекс array("x" => 1, "y" => -1) будет назван "x_1_y_-1", а геоиндекс array("loc" => "2dsphere") будет назван "loc_2dsphere". Для индексов из нескольких полей возможно превышение именем » максимальной длины имени индекса MongoDB. В этом случае можно применить опцию "name", чтобы указать более короткое имя.

  • "background"

    Перестраивать индекс в фоновом режиме, чтобы не блокировать другие задачи базы данных. Укажите TRUE для перестроения в фоновом режиме. Значение по умолчанию - FALSE.

    Внимание

    До MongoDB 2.6.0, перестраивание индекса запускалось на ведомом сервере как приоритетная операция, независимо от этой опции. Смотрите » Перестроение индексов с Replica Sets для дополнительной информации.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

The following option may be used with MongoDB 2.6+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

The following options may be used with MongoDB versions before 2.8:

  • "dropDups"

    Укажите TRUE для принудительного создания уникального индекса, где коллекция может содержать одинаковые значения для ключа. MongoDB будет индексировать первое вхождение ключа и удалять все последующие документы из коллекции, которые содержат такие же значения для ключа. Значение по умолчанию - FALSE.

    Внимание

    "dropDups" может удалить данные из вашей базы данных. Используйте с особой осторожностью.

    Замечание:

    Эта опция не поддерживается в MongoDB 2.8+. Создание индекса не выполнится, если коллекция содержит одинаковые значения.

The following options may be used with MongoDB versions before 2.6:

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

The following options are deprecated and should no longer be used:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".