MongoCollection::deleteIndex
(PECL mongo >=0.9.0)
MongoCollection::deleteIndex — Elimina un índice de esta colección
Descripción
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,
));
}
?>
A cada índice se de da un nombre único cuando es creado. A menudo, es generado
por el controlador basándose en la/s clave/s del índice y en el orden/tipo, aunque también
se podrían especificar nombres personalizados con la opción "name" de
MongoCollection::createIndex()).
Desafortunadamente, MongoCollection::deleteIndex() no puede
eliminar índices con nombres personalizados por razones de retrocompatibilidada. Cuando
se proporciona un argumento de tipo string, se asume que sea el nombre de campo único de
un índice ascendente (p.ej., el nombre "x_1" sería utilizado para el
argumento "x"). Si se proporciona un array u objeto, se generará
un nombre de índice tal como si dicho argumento fuera pasado a
MongoCollection::createIndex().
Para poder borrar un índice con nombre personalizado con el controlador de PHP, se
debe usar el comando de base de datos deleteIndexes. Por ejemplo,
un índice llamado "myIndex" podría borrarse con el controlador de PHP ejecutando:
<?php
$db->command(array(
"deleteIndexes" => $collection->getName(),
"index" => "myIndex",
));
?>
Para determinar el nombre de un índice con el controlador de PHP, se puede consultar la
colección system.indexes de una base de datos y buscar por el campo
"name" cada resultado. El campo "ns"
indicará la colección a la que pertenece cada índice.
Parámetros
-
keys
-
Un array que tiene como claves los campos de índice. Para cada campo, el
valor es la dirección del índice o el
» tipo de índice.
Si se especifica la dirección, se ha de indicar 1 para ascendente o
-1 para descendente.
Si se proporciona un string, se asume que sea el nombre único de campo de un
índece ascendente.
Valores devueltos
Devuelve la respuesta de la base de datos.
Ejemplos
Ejemplo #1 Ejemplo de MongoCollection::deleteIndex()
Este ejemplo ilustra cómo pasar tanto un stringo como un array a la función.
<?php
$m = new MongoClient();
$c = $m->example->indices;
// crear y eliminar un único índice
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");
// crear y eliminar un índice multiclave
$c->ensureIndex(array("j" => 1, "k" => 1));
$c->deleteIndex(array("j" => 1, "k" => 1));
?>