(PECL mongo >=0.9.0)
MongoCollection::deleteIndex — Удаляет индекс из коллекции
$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));
?>