# MongoCommandCursor::rewind

(PECL mongo >=1.5.0)

MongoCommandCursor::rewind — Executes the command and resets the cursor to the start of the result set

### Description

public MongoCommandCursor::rewind ( ) : array

If the cursor has already started iteration, the command will be re-executed.

### Parameters

This function has no parameters.

### Return Values

The raw server result document.

### Errors/Exceptions

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Throws MongoCursorException if the cursor was created with MongoCommandCursor::createFromDocument() and has already started iteration. Such cursors cannot be iterated multiple times, as they lack the original command necessary for re-execution.

### Examples

Example #1 MongoCommandCursor::rewind()

`<?php
$rawResult = $commandCursor->rewind();
// Command cursor is now reset to the start of the result set
var_dump($rawResult);
?>`

The above example will output something similar to:

    array(2) {
      ["cursor"]=>
      array(3) {
        ["id"]=>
        object(MongoInt64)#5 (1) {
          ["value"]=>
          string(12) "310050110216"
        }
        ["ns"]=>
        string(9) "demo.test"
        ["firstBatch"]=>
        array(1) {
          [0]=>
          array(2) {
            ["_id"]=>
            object(MongoId)#6 (1) {
              ["$id"]=>
              string(24) "52f5691544670a8077b0dc51"
            }
            ["value"]=>
            string(2) "42"
          }
        }
      }
      ["ok"]=>
      float(1)
    }

### See Also

- Iterator::rewind() - Rewind the Iterator to the first element