| 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 |