MONGOC_COLLECT...EXES_WITH_OPTS(3)

πŸ’… MONGOC_COLLECT...EXES_WITH_OPTS(3) πŸ’…

okay bestie, this is the libmongoc page for mongoc_collection_create_indexes_with_opts and its index-model besties. It’s giving β€œwrap the createIndexes command, but make it cute and type-safe-ish,” and we are keeping every pointer, option, and caveat exactly where it belongs. 🫢


🌸 SYNOPSIS 🌸

          typedef struct _mongoc_index_model_t mongoc_index_model_t;

          mongoc_index_model_t *
          mongoc_index_model_new (const bson_t *keys, const bson_t *opts);

          void mongoc_index_model_destroy (mongoc_index_model_t *model);

          bool
          mongoc_collection_create_indexes_with_opts (mongoc_collection_t *collection,
                                                      mongoc_index_model_t **models,
                                                      size_t n_models,
                                                      const bson_t *opts,
                                                      bson_t *reply,
                                                      bson_error_t *error);

πŸŽ€ PARAMETERS πŸŽ€

  • collection β€” a mongoc_collection_t. The collection we’re doing all this on. πŸ’–
  • models β€” an array of mongoc_index_model_t *. Yep, an array of pointers, bestie.
  • n_models β€” the number of models. Count ’em, don’t guess. πŸ”’
  • opts β€” optional options.
  • reply β€” a maybe-NULL pointer to overwritable storage for a bson_t to contain the results.
  • error β€” an optional location for a bson_error_t or NULL.

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

  • writeConcern β€” Construct a mongoc_write_concern_t and use mongoc_write_concern_append() to add the write concern to opts. See the example code for mongoc_client_write_command_with_opts().
  • 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.
  • collation β€” Configure textual comparisons. See Setting Collation Order, and the MongoDB Manual entry on Collation. Collation requires MongoDB 3.2 or later, otherwise an error is returned.
  • 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.

Additional options passed in opts are appended to the createIndexes command. See the MongoDB Manual for createIndexes for all supported options.

If no write concern is provided in opts, the collection’s write concern is used.

πŸ¦‹ mongoc_index_model_t πŸ¦‹

Each mongoc_index_model_t represents an index to create. mongoc_index_model_new includes:

  • keys β€” expected to match the form of the key field in the createIndexes command.
  • opts β€” optional index options appended as a sibling to the key field in the createIndexes command.

🌈 DESCRIPTION 🌈

This function wraps around the createIndexes command. That’s the whole vibe: it’s a wrapper, and the index models are the main characters. ✨

πŸ’€ ERRORS πŸ’€

Errors are propagated via the error parameter. So check your error, bestie β€” that’s where the drama shows up. 😭

πŸ‘‘ RETURNS πŸ‘‘

Returns true if successful. Returns false and sets error if there are invalid arguments or a server or network error.

SEE ALSO: Manage Collection Indexes.

πŸ“ AUTHOR πŸ“

MongoDB, Inc

2009-present, MongoDB, Inc.


πŸ’– source/version: libmongoc 2.5.6 Β· date: Oct 09, 202 β€” that footer is literally cut off at 202 in the source text I got, so I’m not inventing digits. Stay slay, bestie. πŸ’–

πŸ“¦ where this page comes from