Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MONGOC_COLLECTION_UPDATE_ONE(3)	   libmongoc   MONGOC_COLLECTION_UPDATE_ONE(3)

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

PARAMETERS
        collection: A mongoc_collection_t.

        selector: A bson_t containing the query to match the document for up-
	 dating.

        update: A bson_t containing the update	to perform. If updating	with a
	 pipeline, a bson_t array.

        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.

        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 com-
	 mand.	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 val-
	 idation of the	provided BSON documents.

        collation: Configure textual comparisons. See Setting	Collation  Or-
	 der,  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.

        let:  A  BSON	document  consisting of	any number of parameter	names,
	 each followed by definitions of constants in the  MQL	Aggregate  Ex-
	 pression language.

        arrayFilters:	An array of filters specifying to which	array elements
	 an update should apply.

        sort: Specify a sort order when matching documents.

DESCRIPTION
       This function updates at	most one document in collection	 that  matches
       selector.

       To update multiple documents see	mongoc_collection_update_many().

       If  you	pass  a	non-NULL reply,	it is filled out with fields  matched-
       Count, 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.  The  reply  must  be
       freed with bson_destroy().

ERRORS
       Errors are propagated via the error parameter.

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.

EXAMPLE
       example-update.c

	  #include <mongoc/mongoc.h>

	  int
	  main (void)
	  {
	     mongoc_init ();
	     bson_t *to_insert = BCON_NEW ("_id", BCON_INT32 (1));
	     bson_t *selector =	BCON_NEW ("_id", "{", "$gt", BCON_INT32	(0), "}");
	     bson_t *update = BCON_NEW ("$set",	"{", "x", BCON_INT32 (1), "}");
	     const bson_t *next_doc;
	     char *to_str;
	     bson_error_t error	= {0};
	     mongoc_cursor_t *cursor;
	     mongoc_client_t *client;
	     mongoc_collection_t *coll;
	     const char	*uri_string = "mongodb://localhost:27017/?appname=example-update";
	     mongoc_uri_t *uri = mongoc_uri_new_with_error (uri_string,	&error);

	     if	(!uri) {
		fprintf	(stderr,
			 "failed to parse URI: %s\n"
			 "error	message:       %s\n",
			 uri_string,
			 error.message);
		return EXIT_FAILURE;
	     }

	     client = mongoc_client_new_from_uri (uri);
	     if	(!client) {
		return EXIT_FAILURE;
	     }

	     coll = mongoc_client_get_collection (client, "db",	"example_coll");

	     mongoc_client_set_error_api (client, 2);
	     /*	insert a document */
	     if	(!mongoc_collection_insert_one (coll, to_insert, NULL, NULL, &error)) {
		fprintf	(stderr, "insert failed: %s\n",	error.message);
		return EXIT_FAILURE;
	     }

	     if	(!mongoc_collection_update_one (coll, selector,	update,	NULL, NULL, &error)) {
		fprintf	(stderr, "update failed: %s\n",	error.message);
		return EXIT_FAILURE;
	     }

	     to_str = bson_as_relaxed_extended_json (to_insert,	NULL);
	     printf ("inserted:	%s\n", to_str);
	     bson_free (to_str);

	     cursor = mongoc_collection_find_with_opts (coll, selector,	NULL, NULL);
	     BSON_ASSERT (mongoc_cursor_next (cursor, &next_doc));
	     printf ("after update, collection has the following document:\n");

	     to_str = bson_as_relaxed_extended_json (next_doc, NULL);
	     printf ("%s\n", to_str);
	     bson_free (to_str);

	     BSON_ASSERT (mongoc_collection_drop (coll,	NULL));

	     bson_destroy (to_insert);
	     bson_destroy (update);
	     bson_destroy (selector);
	     mongoc_collection_destroy (coll);
	     mongoc_uri_destroy	(uri);
	     mongoc_client_destroy (client);
	     mongoc_cleanup ();
	     return EXIT_SUCCESS;
	  }

       SEE ALSO:
	  MongoDB update command documentation for more	information on the update options.

	  mongoc_collection_update_many()

	  mongoc_collection_replace_one()

AUTHOR
       MongoDB,	Inc

COPYRIGHT
       2009-present, MongoDB, Inc.

1.30.2				 Apr 12, 2025  MONGOC_COLLECTION_UPDATE_ONE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mongoc_collection_update_one&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help