public function firstExample($collectionId, $document, array $options = [])
    {
        $_documentClass = $this->_documentClass;

        if (is_array($document)) {
            $document = $_documentClass::createFromArray($document, $options);
        }

        if (!($document instanceof Document)) {
            throw new ClientException('Invalid example document specification');
        }

        $data = [
            self::OPTION_COLLECTION => $collectionId,
            self::OPTION_EXAMPLE    => $document->getAll(['_ignoreHiddenAttributes' => true])
        ];

        $response = $this->getConnection()->put(Urls::URL_FIRST_EXAMPLE, $this->json_encode_wrapper($data));
        
        if ($batchPart = $response->getBatchPart()) {
            return $batchPart;
        }
        
        $data     = $response->getJson();

        $options['_isNew'] = false;

        return $_documentClass::createFromArray($data['document'], $options);
    }