MONGOC_COLLECTION_COMMAND(3)

πŸ’… MONGOC_COLLECTION_COMMAND πŸ’…

okay so bestie, we're in libmongoc territory and this one is literally called MONGOC_COLLECTION_COMMAND(3). she's an icon, she's a legend, but she's also… retired. let's get into it 🫢


⚠️ WARNING: Deprecated since version 1.29.0 β€” this function is deprecated and should not be used in new code. use mongoc_collection_command_simple() instead, fr fr. this is giving "please stop calling me" energy 😭

✨ SYNOPSIS ✨

mongoc_cursor_t *
mongoc_collection_command (mongoc_collection_t *collection,
                           mongoc_query_flags_t flags,
                           uint32_t skip,
                           uint32_t limit,
                           uint32_t batch_size,
                           const bson_t *command,
                           const bson_t *fields,
                           const mongoc_read_prefs_t *read_prefs);

heads up bestie: this function is not considered a retryable read operation. like, she will not try again for you. she said one shot, one opportunity 🎀


πŸŽ€ PARAMETERS πŸŽ€

  • collection: A mongoc_collection_t. your girl, your target, your main character.
  • flags: Unused. literally just sitting there. decor.
  • skip: Unused. napping.
  • limit: Unused. also napping.
  • batch_size: Unused. you guessed it β€” napping.
  • command: A bson_t containing the command to execute. this one actually does something πŸ’–
  • fields: Unused. girl is on her break.
  • read_prefs: An optional mongoc_read_prefs_t. otherwise, the command uses mode MONGOC_READ_PRIMARY. (yes, that's the fallback. no cap.)

πŸ¦‹ MIGRATING πŸ¦‹

so mongoc_collection_command() is deprecated. periodt. here's how to move on gracefully 🧚

the following example uses mongoc_collection_command():

Before

const bson_t *reply;
bson_t *cmd = BCON_NEW ("find", "foo", "filter", "{", "}");
mongoc_cursor_t *cursor = mongoc_collection_command (coll,
                                                     MONGOC_QUERY_NONE /* unused */,
                                                     0 /* unused */,
                                                     0 /* unused */,
                                                     0 /* unused */,
                                                     cmd,
                                                     NULL /* unused */,
                                                     NULL /* read prefs */);
// Expect cursor to return exactly one document for the command reply.
EXPECT (mongoc_cursor_next (cursor, &reply));

bson_error_t error;
if (mongoc_cursor_error (cursor, &error)) {
   FAIL ("Expected no error, got: %s\n", error.message);
}

// Expect successful reply to contain "ok": 1
bson_iter_t iter;
EXPECT (bson_iter_init_find (&iter, reply, "ok") && bson_iter_as_int64 (&iter) == 1);

// Expect cursor to return no other documents.
EXPECT (!mongoc_cursor_next (cursor, &reply));
mongoc_cursor_destroy (cursor);
bson_destroy (cmd);

the above code block may be rewritten to use mongoc_collection_command_simple() instead, as shown below πŸ‘‡

After

bson_t reply;
bson_error_t error;
bson_t *cmd = BCON_NEW ("find", "foo", "filter", "{", "}");
if (!mongoc_collection_command_simple (coll, cmd, NULL /* read prefs */, &reply, &error)) {
   FAIL ("Expected no error, got: %s\n", error.message);
}

// Expect successful reply to contain "ok": 1
bson_iter_t iter;
EXPECT (bson_iter_init_find (&iter, reply, "ok") && bson_iter_as_int64 (&iter) == 1);

bson_destroy (&reply);
bson_destroy (cmd);

glow up complete ✨


🌸 RETURNS 🌸

this function returns a newly allocated mongoc_cursor_t that should be freed with mongoc_cursor_destroy() when no longer in use. the returned mongoc_cursor_t is never NULL, even on error β€” she shows up no matter what, queen behavior πŸ‘‘. the user must call mongoc_cursor_next() on the returned mongoc_cursor_t to execute the initial command. don't forget, or she just sits there πŸ™ˆ

cursor errors can be checked with mongoc_cursor_error_document(). it always fills out the bson_error_t if an error occurred, and optionally includes a server reply document if the error occurred server-side.

⚠️ WARNING: failure to handle the result of this function is a programming error. like, a real one. handle your business bestie πŸ’€

πŸ’œ AUTHOR πŸ’œ

MongoDB, Inc

2009-present, MongoDB, Inc.


and that's the whole page, bestie!! this was MONGOC_COLLECTION_COMMAND(3) from libmongoc, version 1.30.13, dated Oct 09, 2026. mwah πŸ’‹ go use mongoc_collection_command_simple() and thrive πŸ¦‹πŸ’–

πŸ“¦ where this page comes from