MongoCollection::deleteIndex
(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));
?>
Смотрите также
- MongoCollection::createIndex() - Создает индекс для указанных полей, если он еще не существует
- MongoCollection::deleteIndexes() - Удаляет все индексы для коллекции
- MongoCollection::toIndexString() - Преобразует ключи, указывающие индекс, в его идентифицирующую строку
- » Индексы и документация по » типу индекса MongoDB.