PHP Classes

File: vendor/mongodb/mongodb/docs/tutorial/indexes.txt

Recommend this page to a friend!
  Classes of LAGGOUNE Walid   MongoDB Queue PHP Query Execute   vendor/mongodb/mongodb/docs/tutorial/indexes.txt   Download  
File: vendor/mongodb/mongodb/docs/tutorial/indexes.txt
Role: Documentation
Content type: text/plain
Description: Documentation
Class: MongoDB Queue PHP Query Execute
Query and execute multiple queries using MongoDB
Author: By
Last change:
Date: 4 years ago
Size: 3,582 bytes
 

Contents

Class file image Download
======= Indexes ======= .. default-domain:: mongodb Indexes support the efficient execution of queries in MongoDB. Without indexes, MongoDB must perform a *collection scan*, i.e. scan every document in a collection, to select those documents that match the query statement. If an appropriate index exists for a query, MongoDB can use the index to limit the number of documents it must inspect. The PHP driver supports managing indexes through the :phpclass:`MongoDB\\Collection` class, which implements MongoDB's cross-driver `Index Management <https://github.com/mongodb/specifications/blob/master/source/index-management.rst>`_ and `Enumerating Indexes <https://github.com/mongodb/specifications/blob/master/source/enumerate-indexes.rst>`_ specifications. This document provides an introduction to creating, listing, and dropping indexes using the |php-library|. The MongoDB Manual's :manual:`Indexes </indexes>` reference provides more thorough information about indexing in MongoDB. Create Indexes -------------- Create indexes with the :phpmethod:`MongoDB\\Collection::createIndex()` or :phpmethod:`MongoDB\\Collection::createIndexes()` methods. Refer to the method reference for more details about each method. The following example creates an ascending index on the ``state`` field using the :phpmethod:`createIndex() <MongoDB\\Collection::createIndex>` method: .. code-block:: php <?php $collection = (new MongoDB\Client)->test->zips; $result = $collection->createIndex(['state' => 1]); var_dump($result); When you create an index, the method returns its name, which is automatically generated from its specification. The above example would output something similar to:: string(7) "state_1" List Indexes ------------ The :phpmethod:`MongoDB\\Collection::listIndexes()` method provides information about the indexes in a collection. The :phpmethod:`MongoDB\\Collection::listIndexes()` method returns an iterator of :phpclass:`MongoDB\\Model\\IndexInfo` objects, which you can use to view information about each index. Refer to the method reference for more details. The following example lists all indexes in the ``zips`` collection in the ``test`` database: .. code-block:: php <?php $collection = (new MongoDB\Client)->test->zips; foreach ($collection->listIndexes() as $indexInfo) { var_dump($indexInfo); } The output would resemble:: object(MongoDB\Model\IndexInfo)#10 (4) { ["v"]=> int(1) ["key"]=> array(1) { ["_id"]=> int(1) } ["name"]=> string(4) "_id_" ["ns"]=> string(9) "test.zips" } object(MongoDB\Model\IndexInfo)#13 (4) { ["v"]=> int(1) ["key"]=> array(1) { ["state"]=> int(1) } ["name"]=> string(7) "state_1" ["ns"]=> string(9) "test.zips" } Drop Indexes ------------ The :phpmethod:`MongoDB\\Collection::dropIndex()` method lets you drop a single index while :phpmethod:`MongoDB\\Collection::dropIndexes()` drops all of the indexes on a collection. Refer to the method reference for more details about each method. The following example drops a single index by its name, ``state_1``: .. code-block:: php <?php $collection = (new MongoDB\Client)->test->zips; $result = $collection->dropIndex('state_1'); var_dump($result); The operation's output would resemble:: object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(2) { ["nIndexesWas"]=> int(2) ["ok"]=> float(1) } }