Php/docs/mongocollection.deleteindex
MongoCollection::deleteIndex
(PECL mongo >=0.9.0)
MongoCollection::deleteIndex — Deletes an index from this collection
说明
public MongoCollection::deleteIndex
( string|array $keys
) : array
This method is identical to:
<?phppublic 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.
参数
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.
返回值
Returns the database response.
范例
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));?>
参见
- MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist
- MongoCollection::deleteIndexes() - 删除集合的所有索引
- MongoCollection::toIndexString() - Converts keys specifying an index to its identifying string
- The MongoDB » index and » index type documentation.