# mongoc_gridfs_find_one_with_opts()

## Synopsis

    mongoc_gridfs_file_t *
    mongoc_gridfs_find_one_with_opts (mongoc_gridfs_t *gridfs,
                                      const bson_t *filter,
                                      const bson_t *opts,
                                      bson_error_t *error)
       BSON_GNUC_WARN_UNUSED_RESULT;

## Parameters

- `gridfs`: A mongoc_gridfs_t.

- `filter`: A `bson_t` containing the query to execute.

- `opts`: A `bson_t` query options, including sort order and which fields to return. Can be `NULL`.

- `error`: An optional location for a bson_error_t or `NULL`.

## Description

Find the first GridFS file matching `filter`. If there is an error, NULL is returned and `error` is filled out; if there is no error but no matching file is found, NULL is returned and the error code and domain are 0.

See mongoc_collection_find_with_opts() for a description of the `filter` and `opts` parameters.

This function is considered a retryable read operation. Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. If `retryreads` is false in the URI (see mongoc_uri_t) the retry behavior does not apply.

## Errors

Errors are propagated via the `error` parameter.

## Returns

Returns a newly allocated mongoc_gridfs_file_t if successful. You must free the resulting file with mongoc_gridfs_file_destroy() when no longer in use.