MongoCollection::createIndex
MongoCollection::deleteIndexes
MongoCollection
PHP Manual

# MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndex — Deletes an index from this collection

### Description

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

This method is identical to:

`<?php
public function deleteIndexes($keys) {
$indexName = $this->toIndexString($keys);
return $this->db->command(array(
"deleteIndexes" => $this->getName(),
"index" => $indexName,
));
}
?>`

Each index is given a unique name when it is created. This is often generated by the driver based on the index key(s) and order/type, but custom names may also be specified with MongoCollection::createIndex()'s "name" option).

Unfortunately, MongoCollection::deleteIndex() cannot delete custom-named indexes due to a backwards compatibility issue. When a string argument is provided, it is assumed to be the single field name in an ascending index (e.g. the name "x_1" would be used for the argument "x"). If an array or object is provided, an index name is generated just as if that argument was passed to MongoCollection::createIndex().

In order to delete a custom-named index with the PHP driver, the deleteIndexes database command must be used. For instance, an index named "myIndex" could be deleted with the PHP driver by running:

`<?php
$db->command(array(
"deleteIndexes" => $collection->getName(),
"index" => "myIndex",
));
?>`

To determine the name of an index with the PHP driver, you can query the system.indexes collection of a database and look for the "name" field of each result. The "ns" field will indicate the collection to which each index belongs.

### Parameters

`keys`

  An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

  If a string is provided, it is assumed to be the single field name in an ascending index.

### Return Values

Returns the database response.

### Examples

Example #1 MongoCollection::deleteIndex() example

This example passes the function string and array parameters.

`<?php
$m = new MongoClient();
$c = $m->example->indices;
// create and remove a simple index
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");
// create and remove a multi-key index
$c->ensureIndex(array("j" => 1, "k" => 1));
$c->deleteIndex(array("j" => 1, "k" => 1));
?>`

### See Also

- MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist.
- MongoCollection::deleteIndexes() - Delete all indices for this collection
- MongoCollection::toIndexString() - Converts keys specifying an index to its identifying string
- The MongoDB » index and » index type documentation.

MongoCollection::createIndex
MongoCollection::deleteIndexes
MongoCollection
PHP Manual