---
name: "mongoc_collection_find_indexes_with_opts"
section: "3"
platform: "linux"
package: "libmongoc-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mongoc_collection_find_indexes_with_opts"
---

# mongoc\_collection\_find\_indexes\_with\_opts(3)

## SYNOPSIS

```
mongoc_cursor_t *
mongoc_collection_find_indexes_with_opts (mongoc_collection_t *collection,
                                          const bson_t *opts);
```

Fetches a cursor containing documents, each corresponding to an index on this collection.

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.

## PARAMETERS

- •

  **collection**: A *mongoc\_collection\_t*.

- •

  **opts**: A *bson\_t* containing additional options.

**opts** may be NULL or a BSON document with additional command options:

- •

  **sessionId**: First, construct a *mongoc\_client\_session\_t* with *mongoc\_client\_start\_session()*. You can begin a transaction with *mongoc\_client\_session\_start\_transaction()*, optionally with a *mongoc\_transaction\_opt\_t* that overrides the options inherited from **collection**, and use *mongoc\_client\_session\_append()* to add the session to **opts**. See the example code for *mongoc\_client\_session\_t*.

- •

  **serverId**: To target a specific server, include an int32 "serverId" field. Obtain the id by calling *mongoc\_client\_select\_server()*, then *mongoc\_server\_description\_id()* on its return value.

For a list of all options, see *the MongoDB Manual entry on the listIndexes command*.

## ERRORS

Use *mongoc\_cursor\_error()* on the returned cursor to check for errors.

## RETURNS

This function returns a newly allocated *mongoc\_cursor\_t* that should be freed with *mongoc\_cursor\_destroy()* when no longer in use. The returned *mongoc\_cursor\_t* is never **NULL**, even on error. The user must call *mongoc\_cursor\_next()* on the returned *mongoc\_cursor\_t* to execute the initial command.

Cursor errors can be checked with *mongoc\_cursor\_error\_document()*. It always fills out the *bson\_error\_t* if an error occurred, and optionally includes a server reply document if the error occurred server-side.

**WARNING:**

Failure to handle the result of this function is a programming error.

In the returned cursor each result corresponds to the server's representation of an index on this collection. If the collection does not exist on the server, the cursor will be empty.

The cursor functions *mongoc\_cursor\_set\_limit()*, *mongoc\_cursor\_set\_batch\_size()*, and *mongoc\_cursor\_set\_max\_await\_time\_ms()* have no use on the returned cursor.

**SEE ALSO:**

```
Manage Collection Indexes.
```

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
