.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "MONGOC_FIND_AND_MODIFY_OPTS_SET_FIELDS" "3" "May 07, 2024" "1.27.1" "libmongoc" .SH SYNOPSIS .INDENT 0.0 .INDENT 3.5 .sp .EX bool mongoc_find_and_modify_opts_set_fields (mongoc_find_and_modify_opts_t *opts, const bson_t *fields); .EE .UNINDENT .UNINDENT .SH PARAMETERS .INDENT 0.0 .IP \(bu 2 \fBopts\fP: A \fI\%mongoc_find_and_modify_opts_t\fP\&. .IP \(bu 2 \fBfields\fP: A subset of fields to return. Choose which fields to include by appending \fB{fieldname: 1}\fP for each fieldname, or excluding it with \fB{fieldname: 0}\fP\&. .UNINDENT .SH DESCRIPTION .sp Adds fields argument to the builder. .sp \fBfields\fP does not have to remain valid after calling this function. .SH RETURNS .sp Returns \fBtrue\fP if it successfully added the option to the builder, otherwise \fBfalse\fP\&. .SH SETTING FIELDS .sp fields.c .INDENT 0.0 .INDENT 3.5 .sp .EX void fam_fields (mongoc_collection_t *collection) { mongoc_find_and_modify_opts_t *opts; bson_t fields = BSON_INITIALIZER; bson_t *update; bson_t reply; bson_error_t error; bson_t query = BSON_INITIALIZER; bool success; /* Find Zlatan Ibrahimovic */ BSON_APPEND_UTF8 (&query, \(dqlastname\(dq, \(dqIbrahimovic\(dq); BSON_APPEND_UTF8 (&query, \(dqfirstname\(dq, \(dqZlatan\(dq); /* Return his goal tally */ BSON_APPEND_INT32 (&fields, \(dqgoals\(dq, 1); /* Bump his goal tally */ update = BCON_NEW (\(dq$inc\(dq, \(dq{\(dq, \(dqgoals\(dq, BCON_INT32 (1), \(dq}\(dq); opts = mongoc_find_and_modify_opts_new (); mongoc_find_and_modify_opts_set_update (opts, update); mongoc_find_and_modify_opts_set_fields (opts, &fields); /* Return the new tally */ mongoc_find_and_modify_opts_set_flags (opts, MONGOC_FIND_AND_MODIFY_RETURN_NEW); 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 (\(dq%s\en\(dq, str); bson_free (str); } else { fprintf (stderr, \(dqGot error: \e\(dq%s\e\(dq on line %d\en\(dq, error.message, __LINE__); } bson_destroy (&reply); bson_destroy (update); bson_destroy (&fields); bson_destroy (&query); mongoc_find_and_modify_opts_destroy (opts); } .EE .UNINDENT .UNINDENT .sp Outputs: .INDENT 0.0 .INDENT 3.5 .sp .EX { \(dqlastErrorObject\(dq : {\(dqupdatedExisting\(dq : true, \(dqn\(dq : 1}, \(dqvalue\(dq : {\(dq_id\(dq : {\(dq$oid\(dq : \(dq56562a99d13e6d86239c7b00\(dq}, \(dqgoals\(dq : 343}, \(dqok\(dq : 1 } .EE .UNINDENT .UNINDENT .SH AUTHOR MongoDB, Inc .SH COPYRIGHT 2017-present, MongoDB, Inc .\" Generated by docutils manpage writer. .