mongoc_find_and_modify_opts_set_update - mongoc_find_and_modify_opts_set_update()

NAME  SYNOPSIS  PARAMETERS  DESCRIPTION  RETURNS  SETTING UPDATE  AUTHOR  COPYRIGHT 

NAME

mongoc_find_and_modify_opts_set_update − mongoc_find_and_modify_opts_set_update()

SYNOPSIS

bool
mongoc_find_and_modify_opts_set_update (mongoc_find_and_modify_opts_t *opts,
                                        const bson_t *update);

PARAMETERS

opts: A mongoc_find_and_modify_opts_t.

update: The update document is the same format as the update document passed to mongoc_collection_update().

DESCRIPTION

Adds update argument to the builder.

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

RETURNS

Returns true if it successfully added the option to the builder, otherwise false.

SETTING UPDATE

update.c

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


   /* Find Zlatan Ibrahimovic */
   BSON_APPEND_UTF8 (&query, "firstname", "Zlatan");
   BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");

   /* Make him a book author */
   update = BCON_NEW ("$set", "{", "author", BCON_BOOL (true), "}");

   opts = mongoc_find_and_modify_opts_new ();
   /* Note that the document returned is the _previous_ version of the document
    * To fetch the modified new version, use
    * mongoc_find_and_modify_opts_set_flags (opts,
    * MONGOC_FIND_AND_MODIFY_RETURN_NEW);
    */
   mongoc_find_and_modify_opts_set_update (opts, update);

   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, __LINE__);
   }


   bson_destroy (&reply);
   bson_destroy (update);
   bson_destroy (&query);
   mongoc_find_and_modify_opts_destroy (opts);
}

Outputs:

{
   "lastErrorObject" : {"updatedExisting" : true, "n" : 1},
                       "value" : {
                          "_id" : {"$oid" : "56562a99d13e6d86239c7b00"},
                          "age" : 35,
                          "firstname" : "Zlatan",
                          "goals" : 342,
                          "lastname" : "Ibrahimovic",
                          "profession" : "Football player",
                          "position" : "striker"
                       },
                                 "ok" : 1
}

AUTHOR

MongoDB, Inc

COPYRIGHT

2017-present, MongoDB, Inc


Updated 2024-01-29 - jenkler.se | uex.se