Provided by: libmongoc-doc_1.3.1-1_all bug

NAME

       mongoc_find_and_modify_opts_set_sort() - Adds sort argument to the builder.

SYNOPSIS

       bool
       mongoc_find_and_modify_opts_set_sort (mongoc_find_and_modify_opts_t  *opts,
                                             const bson_t                   *sort);

       NOTE
              New in mongoc 1.3.0

PARAMETERS

       opts   A mongoc_find_and_modify_opts_t \&.

       sort   Determines  which  document  the  operation  modifies  if  the  query  selects multiple documents.
              findAndModify modifies the first document in the sort order specified by this argument.

DESCRIPTION

       Adds sort argument to the builder.

RETURNS

       Returns true if it successfully added the option to the builder.

SETTING SORT

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

          /* Find all users with the lastname Ibrahimovic */
          BSON_APPEND_UTF8 (&query, "lastname", "Ibrahimovic");

          /* Sort by age (descending) */
          BSON_APPEND_INT32 (&sort, "age", ‐1);

          /* Bump his goal tally */
          update = BCON_NEW ("$set", "{",
             "oldest", BCON_BOOL (true),
          "}");

          opts = mongoc_find_and_modify_opts_new ();
          mongoc_find_and_modify_opts_set_update (opts, update);
          mongoc_find_and_modify_opts_set_sort (opts, &sort);

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

          if (success) {
             char *str;

             str = bson_as_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 (&sort);
          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": 343,
               "lastname": "Ibrahimovic",
               "profession": "Football player",
               "position": "striker",
               "author": true
           },
           "ok": 1
       }

COLOPHON

       This    page    is    part    of    MongoDB    C    Driver.     Please     report     any     bugs     at
       https://jira.mongodb.org/browse/CDRIVER.

MongoDB C Driver                                   2016‐01‐18            MONGOC_FIND_AND_MODIFY_OPTS_SET_SORT(3)