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

FreeBSD Manual Pages

  
 
  

home | help
MONGOC_FIND_AN...FY_OPTS_APPEND(3) libmongocMONGOC_FIND_AN...FY_OPTS_APPEND(3)

SYNOPSIS
	  bool
	  mongoc_find_and_modify_opts_append (mongoc_find_and_modify_opts_t *opts,
					      const bson_t *extra);

PARAMETERS
        opts: A mongoc_find_and_modify_opts_t.

        extra:	A bson_t with fields and values	to append directly to the fin-
	 dAndModify command sent to the	server.

DESCRIPTION
       Adds arbitrary options to the findAndModify command.

       extra does not have to remain valid after calling this function.

       extra 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.

        hint: A document or string that specifies the index to	use to support
	 the query predicate.

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

        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.

RETURNS
       Returns true on success.	If any arguments are  invalid,	returns	 false
       and logs	an error.

APPENDING OPTIONS TO FINDANDMODIFY
       opts.c

	  void
	  fam_opts (mongoc_collection_t	*collection)
	  {
	     mongoc_find_and_modify_opts_t *opts;
	     bson_t reply;
	     bson_t *update;
	     bson_error_t error;
	     bson_t query = BSON_INITIALIZER;
	     mongoc_write_concern_t *wc;
	     bson_t extra = BSON_INITIALIZER;
	     bool success;

	     /*	Find Zlatan Ibrahimovic, the striker */
	     BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
	     BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");
	     BSON_APPEND_UTF8 (&query, "profession", "Football player");

	     /*	Bump his age */
	     update = BCON_NEW ("$inc",	"{", "age", BCON_INT32 (1), "}");

	     opts = mongoc_find_and_modify_opts_new ();
	     mongoc_find_and_modify_opts_set_update (opts, update);

	     /*	Abort if the operation takes too long. */
	     mongoc_find_and_modify_opts_set_max_time_ms (opts,	100);

	     /*	Set write concern w: 2 */
	     wc	= mongoc_write_concern_new ();
	     mongoc_write_concern_set_w	(wc, 2);
	     mongoc_write_concern_append (wc, &extra);

	     /*	Some future findAndModify option the driver doesn't support conveniently
	      */
	     BSON_APPEND_INT32 (&extra,	"futureOption",	42);
	     mongoc_find_and_modify_opts_append	(opts, &extra);

	     success = mongoc_collection_find_and_modify_with_opts (collection,	&query,	opts, &reply, &error);

	     if	(success) {
		char *str;

		str = bson_as_canonical_extended_json (&reply, NULL);
		printf ("%s\n",	str);
		bson_free (str);
	     } else {
		fprintf	(stderr, "Got error: \"%s\" on line %d\n", error.message, (int)	(__LINE__));
	     }

	     bson_destroy (&reply);
	     bson_destroy (&extra);
	     bson_destroy (update);
	     bson_destroy (&query);
	     mongoc_write_concern_destroy (wc);
	     mongoc_find_and_modify_opts_destroy (opts);
	  }

AUTHOR
       MongoDB,	Inc

COPYRIGHT
       2009-present, MongoDB, Inc.

1.30.2				 Apr 12, 202MONGOC_FIND_AN...FY_OPTS_APPEND(3)

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

home | help