# mongoc_index_opt_t

## Synopsis

    #include <mongoc.h>

    typedef struct
    {
       bool                        is_initialized;
       bool                        background;
       bool                        unique;
       const char                 *name;
       bool                        drop_dups;
       bool                        sparse;
       int32_t                     expire_after_seconds;
       int32_t                     v;
       const bson_t               *weights;
       const char                 *default_language;
       const char                 *language_override;
       mongoc_index_opt_geo_t     *geo_options;
       mongoc_index_opt_storage_t *storage_options;
       const bson_t               *partial_filter_expression;
       void                       *padding[5];
    } mongoc_index_opt_t;

## Description

This structure contains the options that may be used for tuning a specific index.

See the createIndexes documentations in the MongoDB manual for descriptions of individual options.

NOTE: dropDups is deprecated as of MongoDB version 3.0.0. This option is silently ignored by the server and unique index builds using this option will fail if a duplicate value is detected.

## Example

    {
       bson_t keys;
       bson_error_t error;
       mongoc_index_opt_t opt;
       mongoc_index_opt_geo_t geo_opt;

       mongoc_index_opt_init(&opt);
       mongoc_index_opt_geo_init(&geo_opt);

       bson_init(&keys);
       BSON_APPEND_UTF8(&keys, "location", "2d");

       geo_opt.twod_location_min = -123;
       geo_opt.twod_location_max = +123;
       geo_opt.twod_bits_precision = 30;
       opt.geo_options = &geo_opt;

       collection = mongoc_client_get_collection (client, "test", "geo_test");
       if (mongoc_collection_create_index(collection, &keys, &opt, &error)) {
           /* Successfully created the geo index */
       }
       bson_destroy(&keys);
       mongoc_collection_destroy(&collection);
    }

## See Also

mongoc_index_opt_geo_t

mongoc_index_opt_wt_t