Появилась необходимость подсчитать количество уникальных значений параметра в коллекции. Сначала был испробован distinct, который успешно справился с формированием отсортированного уникального списка значений, но вот организовать подсчет для этого списка в одном запросе не удалось. Успех был получен при использовании group и reduce:

db.my_collection.group({

    key: {"field": true}, 

    initial: {sum: 0}, 

    reduce: function(doc, prev) { prev.sum += 1}

})

Или как вариант:

db.$cmd.findOne({

    group: { 

        ns: "my_collection", 

        cond: {}, 

        key: {"field": true}, 

        initial: {sum: 0}, 

        $reduce: function(doc, prev) { prev.sum += 1}

        }

})