MONGOC_COLLECTION_COUNT_DOCUMENTS(3) | libmongoc | MONGOC_COLLECTION_COUNT_DOCUMENTS(3) |
int64_t mongoc_collection_count_documents (mongoc_collection_t *collection, const bson_t *filter, const bson_t *opts, const mongoc_read_prefs_t *read_prefs, bson_t *reply, bson_error_t *error);
opts may be NULL or a BSON document with additional command options:
Other options are included in the sent aggregate command. For a list of all options, see the MongoDB Manual entry on the aggregate command.
This functions executes a count query on collection. In contrast with mongoc_collection_estimated_document_count(), the count returned is guaranteed to be accurate.
This function is considered a retryable read operation. Upon a transient error (a network error, errors due to replica set failover, etc.) the operation is safely retried once. If retryreads is false in the URI (see mongoc_uri_t) the retry behavior does not apply.
Errors are propagated via the error parameter.
-1 on failure, otherwise the number of documents counted.
#include <bson/bson.h> #include <mongoc/mongoc.h> #include <stdio.h> static void print_count (mongoc_collection_t *collection, bson_t *filter) { bson_error_t error; int64_t count; bson_t* opts = BCON_NEW ("skip", BCON_INT64(5)); count = mongoc_collection_count_documents ( collection, filter, opts, NULL, NULL, &error); bson_destroy (opts); if (count < 0) { fprintf (stderr, "Count failed: %s\n", error.message); } else { printf ("%" PRId64 " documents counted.\n", count); } }
When migrating to mongoc_collection_count_documents() from the deprecated mongoc_collection_count() or mongoc_collection_count_with_opts(), the following query operators in the filter must be replaced:
Operator | Replacement |
$where | $expr |
$near | $geoWithin with $center |
$nearSphere | $geoWithin with $centerSphere |
$expr requires MongoDB 3.6+
SEE ALSO:
mongoc_collection_estimated_document_count()
MongoDB, Inc
2017-present, MongoDB, Inc
March 31, 2024 | 1.26.0 |