MongoCollection
PHP Manual

MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexElimina un índice de esta colección

Descripción

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

Este método es identico a:

<?php

public function deleteIndexes($keys) {
  
// toIndexString es un método 'protected' que convierte los strings, arrays, y objetos 
  // en nombres de índices
  
$index $this->toIndexString($keys);

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

?>

Cuando se crea un índice, se le asigna un nombre único. Generalmente, será establecido por el usuario (con la opción "name" de MongoCollection::ensureIndex()) o generado por el driver a partir de una combinación de nombres de clave y de direcciones. Usaremos después este nombre con MongoCollection::deleteIndex() para eliminar el índice.

Desafortunadamente, el método MongoCollection::ensureIndex() genera nombres ligeramente diferentes a los que crea la shell y, por motivos de retro-compatibilidad, MongoCollection::deleteIndex() no puede eliminar índices con nombres creados a medida. Por esa reazón, la mejor forma de eliminar índices creados por la shell o con nombres a medida, es llamar directamente al comando de la base de datos deleteIndexes.

De esta forma, si se quisiera eliminar un índice al que llamamos "superfast query", sólo se podría eliminar con el controlador de PHP, ejecutando:

<?php

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

?>

Para averiguar cómo se llama un índice, puede consultar colección system.indexes de una base de datos y analizar el campo name (nombre).

Parámetros

keys

Campo o campos en los que eliminar el índice.

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;

// crea un índice
$c->ensureIndex(array("i"=>1));

// elimina un índice
$c->deleteIndex("i");


// crea un índice multi-clave
$c->ensureIndex(array("j" => 1"k" => 1));

// elimina un índice multi-clave
$c->deleteIndex(array("j" => 1"k" => 1));
?>

MongoCollection
PHP Manual