MongoCursor::explain

Return an explanation of the query, often useful for optimization and debugging

&reftitle.description; public `array` `MongoCursor::explain`
&reftitle.parameters; &no.function.parameters;
&reftitle.returnvalues;

Returns an explanation of the query.

&reftitle.examples;

### `MongoCursor::explain` example

    <?php

    $cursor = $collection->find(array("x"=>1), array("y"));
    $cursor->sort(array("z" => 1))->limit(4)->skip(5);

    var_dump($cursor->explain());

    ?>

&example.outputs.similar;

    array(8) {
      ["cursor"]=>
      string(15) "BtreeCursor x_1"
      ["startKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
      ["endKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
      ["nscanned"]=>
      float(4)
      ["n"]=>
      int(4)
      ["scanAndOrder"]=>
      int(1)
      ["millis"]=>
      int(3)
      ["allPlans"]=>
      array(2) {
        [0]=>
        array(3) {
          ["cursor"]=>
          string(15) "BtreeCursor x_1"
          ["startKey"]=>
          array(1) {
            ["x"]=>
            int(1)
          }
          ["endKey"]=>
          array(1) {
            ["x"]=>
            int(1)
          }
        }
        [1]=>
        array(3) {
          ["cursor"]=>
          string(11) "BasicCursor"
          ["startKey"]=>
          array(0) {
          }
          ["endKey"]=>
          array(0) {
          }
        }
      }
    }

&reftitle.errors;

Throws `MongoConnectionException` if it cannot reach the database.

&reftitle.seealso;

MongoDB core docs on explain.