Puede usar $addToSet con el marco de agregación para contar objetos distintos.
Por ejemplo:
db.collectionName.aggregate([{
$group: {_id: null, uniqueValues: {$addToSet: "$fieldName"}}
}])
O extendido para obtener sus valores únicos en una lista adecuada en lugar de un subdocumento dentro de un registro _id nulo:
db.collectionName.aggregate([
{ $group: {_id: null, myFieldName: {$addToSet: "$myFieldName"}}},
{ $unwind: "$myFieldName" },
{ $project: { _id: 0 }},
])