private function buildData()
    {
        $data = [
            self::ENTRY_QUERY => $this->_query,
            self::ENTRY_COUNT => $this->_doCount,
            'options'         => [
                self::FULL_COUNT => $this->_fullCount,
                self::ENTRY_FAIL_ON_WARNING => $this->_failOnWarning
            ]
        ];
        
        if ($this->_stream !== null) {
            $data['options'][self::ENTRY_STREAM] = $this->_stream;
        }
        
        if ($this->_ttl !== null) {
            $data[self::ENTRY_TTL] = $this->_ttl;
        }

        if ($this->_cache !== null) {
            $data[Cursor::ENTRY_CACHE] = $this->_cache;
        }
        
        if ($this->_memoryLimit > 0) {
            $data[self::ENTRY_MEMORY_LIMIT] = $this->_memoryLimit;
        }
        
        if ($this->_bindVars->getCount() > 0) {
            $data[self::ENTRY_BINDVARS] = $this->_bindVars->getAll();
        }

        if ($this->_batchSize > 0) {
            $data[self::ENTRY_BATCHSIZE] = $this->_batchSize;
        }

        return $data;
    }