Alcaeus\MongoDbAdapter\AbstractCursor::getIterationInfo PHP Method

getIterationInfo() protected method

protected getIterationInfo ( ) : array
return array
    protected function getIterationInfo()
    {
        $iterationInfo = ['started_iterating' => $this->cursor !== null];
        if ($this->cursor !== null) {
            switch ($this->cursor->getServer()->getType()) {
                case \MongoDB\Driver\Server::TYPE_RS_ARBITER:
                    $typeString = 'ARBITER';
                    break;
                case \MongoDB\Driver\Server::TYPE_MONGOS:
                    $typeString = 'MONGOS';
                    break;
                case \MongoDB\Driver\Server::TYPE_RS_PRIMARY:
                    $typeString = 'PRIMARY';
                    break;
                case \MongoDB\Driver\Server::TYPE_RS_SECONDARY:
                    $typeString = 'SECONDARY';
                    break;
                default:
                    $typeString = 'STANDALONE';
            }
            $cursorId = (string) $this->cursor->getId();
            $iterationInfo += ['id' => (int) $cursorId, 'at' => $this->position, 'numReturned' => $this->position, 'server' => sprintf('%s:%d;-;.;%d', $this->cursor->getServer()->getHost(), $this->cursor->getServer()->getPort(), getmypid()), 'host' => $this->cursor->getServer()->getHost(), 'port' => $this->cursor->getServer()->getPort(), 'connection_type_desc' => $typeString];
        }
        return $iterationInfo;
    }

Usage Example

 /**
  * @return array
  */
 protected function getIterationInfo()
 {
     $iterationInfo = parent::getIterationInfo();
     if ($iterationInfo['started_iterating']) {
         $iterationInfo += ['firstBatchAt' => $iterationInfo['at'], 'firstBatchNumReturned' => $iterationInfo['numReturned']];
         $iterationInfo['at'] = 0;
         $iterationInfo['numReturned'] = 0;
     }
     return $iterationInfo;
 }