MongoDB has a distinct
command which returns an array of distinct values for a field; you can check the length of the array for a count.
There is a shell db.collection.distinct()
helper as well:
> db.countries.distinct('country');
[ "Spain", "England", "France", "Australia" ]
> db.countries.distinct('country').length
4
As noted in the MongoDB documentation:
Results must not be larger than the maximum BSON size (16MB). If your results exceed the maximum BSON size, use the aggregation pipeline to retrieve distinct values using the
$group
operator, as described in Retrieve Distinct Values with the Aggregation Pipeline.