MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexУдаляет индекс из коллекции

Описание

public MongoCollection::deleteIndex ( string|array $keys ) : array

Этот метод идентичен:

<?php

public function deleteIndexes($keys) {
  
$indexName $this->toIndexString($keys);

  return 
$this->db->command(array(
    
"deleteIndexes" => $this->getName(),
    
"index" => $indexName,
  ));
}

?>

Каждому индексу присваивается уникальное имя при его создании. Это часто генерируется драйвером на основе ключа(ей) индекса и порядка/типа, но пользовательские имена также могут быть указаны с помощью опции "name" MongoCollection::createIndex().

К сожалению, MongoCollection::deleteIndex() не может удалить пользовательские индексы из-за проблемы обратной совместимости. Когда предоставляется строковый аргумент, предполагается, что это имя одного поля в возрастающем индексе (например, имя "x_1" будет использоваться для аргумента "x"). Если указан массив или объект, имя индекса генерируется так же, как если бы этот аргумент был передан MongoCollection::createIndex().

Чтобы удалить индекс с пользовательским именем с помощью драйвера PHP, необходимо использовать команду базы данных deleteIndexes. Например, индекс с именем "myIndex" можно удалить с помощью драйвера PHP, выполнив:

<?php

$db
->command(array(
  
"deleteIndexes" => $collection->getName(),
  
"index" => "myIndex",
));

?>

Чтобы определить имя индекса с помощью драйвера PHP, вы можете запросить коллекцию system.indexes базы данных и найти поле "name" каждого результата. Поле "ns" будет указывать коллекцию, к которой принадлежит каждый индекс.

Список параметров

keys

Массив, определяющий поля индекса в качестве его ключей. Для каждого поля значением является либо направление индекса, либо » тип индекса. Если указано направление, укажите 1 для возрастания или -1 для убывания.

Если указана строка, предполагается, что это имя одного поля в возрастающем индексе.

Возвращаемые значения

Возвращает ответ базы данных.

Примеры

Пример #1 Пример использования MongoCollection::deleteIndex()

Этот пример передает строку функции и параметры массива.

<?php

$m 
= new MongoClient();
$c $m->example->indices;

// создаем и удаляем простой индекс
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");

// создаем и удаляем многоключевой индекс
$c->ensureIndex(array("j" => 1"k" => 1));
$c->deleteIndex(array("j" => 1"k" => 1));

?>

Смотрите также