MONGOC_COLLECTION_UPDATE_MANY(3)

πŸ’… MONGOC_COLLECTION_UPDATE_MANY β€” bestie edition

okay so you're in the libmongoc docs, specifically the MONGOC_COLLECTION_UPDATE_MANY(3) page, and honestly? this one ate. it's the "update literally everybody who matches" function and it's lowkey iconic. let's get into it πŸŽ€


✨ SYNOPSIS ✨

bool
mongoc_collection_update_many (mongoc_collection_t *collection,
                               const bson_t *selector,
                               const bson_t *update,
                               const bson_t *opts,
                               bson_t *reply,
                               bson_error_t *error);

that's the whole signature, no cap. six args, one bool back. slay.


🌸 PARAMETERS 🌸

okay so here's who's who in this little friend group 🫢

  • collection: A mongoc_collection_t. the collection itself, main character energy.
  • selector: A bson_t containing the query to match documents for updating. basically the vibe check that decides who gets updated πŸ’…
  • update: A bson_t containing the update to perform. but β€” if updating with a pipeline, it's a bson_t array instead. just so you know, iykyk.
  • 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. optional bestie, no pressure.

πŸ¦‹ the opts situation

opts may be NULL or a BSON document with additional command options. and oof, there are a lot of them. let's go:

  • 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.
  • validate: Construct a bitwise-or of all desired bson_validate_flags_t. Set to false to skip client-side validation of the provided BSON documents.
  • comment: A bson_value_t specifying the comment to attach to this command. The comment will appear in log messages, profiler output, and currentOp output. Requires MongoDB 4.4 or later. ⚠️
  • bypassDocumentValidation: Set to true to skip server-side schema validation of the provided BSON documents. living dangerously, love that for you πŸ™ˆ
  • 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.
  • hint: A document or string that specifies the index to use to support the query predicate.
  • upsert: When true, creates a new document if no document matches the query. ✨ manifestation ✨
  • let: A BSON document consisting of any number of parameter names, each followed by definitions of constants in the MQL Aggregate Expression language.
  • arrayFilters: An array of filters specifying to which array elements an update should apply.

πŸ”₯ DESCRIPTION πŸ”₯

This function updates all documents in collection that match selector. yes, all of them. periodt.

To update at most one document see mongoc_collection_update_one(). that's the one-at-a-time girlie.

If you pass a non-NULL reply, it is filled out with fields matchedCount, modifiedCount, and optionally upsertedId if applicable. If there is a server error then reply contains either a "writeErrors" array with one subdocument or a "writeConcernErrors" array.

πŸ’€ important: the reply must be freed with bson_destroy(). don't leave it hanging, that's not the vibe.

😭 ERRORS 😭

Errors are propagated via the error parameter. that's it, that's the whole section. short but honestly so real.


πŸ‘‘ RETURNS πŸ‘‘

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

A write concern timeout or write concern error is considered a failure. no half-slaying allowed, it's all or nothing πŸ’…


🌈 SEE ALSO 🌈

  • MongoDB update command documentation for more information on the update options.
  • mongoc_collection_update_one()

πŸ’– AUTHOR πŸ’–

MongoDB, Inc

2009-present, MongoDB, Inc.


and that's the whole page bestie!! this one's from version 2.5.6, dated Oct 09, 2026 β€” go update many things responsibly, mwah πŸ§šβ€β™€οΈπŸ’œ

πŸ“¦ where this page comes from