Você pode usar $addToSet com a estrutura de agregação para contar objetos distintos.
Por exemplo:
db.collectionName.aggregate([{
$group: {_id: null, uniqueValues: {$addToSet: "$fieldName"}}
}])
Ou estendido para obter seus valores exclusivos em uma lista adequada, em vez de um subdocumento dentro de um registro _id nulo:
db.collectionName.aggregate([
{ $group: {_id: null, myFieldName: {$addToSet: "$myFieldName"}}},
{ $unwind: "$myFieldName" },
{ $project: { _id: 0 }},
])