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

NAME

       mongoc_find_and_modify_opts_set_bypass_document_validation()             -            Adds
       bypassDocumentValidation argument to the builder.

SYNOPSIS

       bool
       mongoc_find_and_modify_opts_set_bypass_document_validation (mongoc_find_and_modify_opts_t *opts,
                                                                   bool                           bypass);

       NOTE
              New in MongoDB 3.2 and mongoc 1.3.0

       NOTE
              This option is only available when talking to MongoDB 3.2 and later.

PARAMETERS

       opts   A mongoc_find_and_modify_opts_t \&.

       bypass If the schema validation rules should be ignored.

DESCRIPTION

       Adds bypassDocumentValidation argument to the builder.

       NOTE
              When authentication is  enabled,  the  authenticated  user  must  have  either  the
              "dbadmin" or "restore" roles to bypass document validation.

RETURNS

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

SETTING BYPASSDOCUMENTVALIDATION

       void fam_bypass(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;
          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);
          /* He can still play, even though he is pretty old. */
          mongoc_find_and_modify_opts_set_bypass_document_validation (opts, true);

          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 (&query);
          mongoc_find_and_modify_opts_destroy (opts);
       }

       Outputs:

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

COLOPHON

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

Binary file (standard input) matches