(PECL mongo >=0.9.0)
MongoCollection::deleteIndex — Supprime un index de la collection
$keys
)Cette méthode est identique à:
<?php
public function deleteIndexes($keys) {
$indexName = $this->toIndexString($keys);
return $this->db->command(array(
"deleteIndexes" => $this->getName(),
"index" => $indexName,
));
}
?>
Chaque index se voit recevoir un nom unique lors de sa création. Il est souvent généré par le driver, en se basant sur la clé de l'index, et sur l'ordre ou le type de l'index, mais des noms personalisés peuvent aussi être spécifiés avec la méthode MongoCollection::createIndex() (option "name").
Malheureusement, la méthode MongoCollection::deleteIndex() ne peut supprimer les indexes possédant un nom personalisé en raison d'une compatibilité ascendante. Lorsqu'un argument est fourni, il est supposé être le nom d'un seul champ dans un index croissant (i.e. le nom "x_1" sera utilisé pour l'argument "x"). Si un tableau ou un objet est fourni, un nom d'index est généré comme si l'argument avait été passé à la méthode MongoCollection::createIndex().
Pour pouvoir supprimer un index possédant un nom personalisé avec le driver PHP, la commande de base de données deleteIndexes doit être utilisée. Actuellement, un index dont le nom est "myIndex" peut être supprimé avec le driver PHP en exécutant :
<?php
$db->command(array(
"deleteIndexes" => $collection->getName(),
"index" => "myIndex",
));
?>
Pour déterminer le nom d'un index avec le driver PHP, vous pouvez interroger la collection system.indexes de la base de données, et regarder le champ "name" de chaque résultat. Le champ "ns" indiquera la collection dont l'index fait parti.
keys
Un tableau spécifiant les champs de l'index, comme clés. Pour chaque champ, la valeur est soit la direction de l'index, soit le » type d'index. Si la direction est spécifiée, la valeur 1 correspondra à un sens croissant, et la valeur -1, au sens décroissant.
Si une chaîne de caractères est fournie, on supposera qu'il s'agit du nom d'un seul champ d'un index croissant.
Retourne la réponse de la base de données.
Exemple #1 Exemple avec MongoCollection::deleteIndex()
This example passes the function string and array parameters.
<?php
$m = new MongoClient();
$c = $m->example->indices;
// crée et supprime un index
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");
// crée et supprime un index multi-clé
$c->ensureIndex(array("j" => 1, "k" => 1));
$c->deleteIndex(array("j" => 1, "k" => 1));
?>