MongoCollection::deleteIndex
(PECL mongo >=0.9.0)
MongoCollection::deleteIndex — Supprime un index de la collection
Description
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,
));
}
?>
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.
Liste de paramètres
-
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.
Valeurs de retour
Retourne la réponse de la base de données.
Exemples
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));
?>