MongoDB select count (отличный x) в индексированном столбце - подсчитывать уникальные результаты для больших наборов данных

Я просмотрел несколько статей и примеров и еще не нашел эффективного способа выполнить этот SQL-запрос в MongoDB (где есть миллионыrows документы)

First attempt

(например, из этого почти повторяющегося вопроса -Монго эквивалент SQL SELECT DISTINCT?)

db.myCollection.distinct("myIndexedNonUniqueField").length

Очевидно, я получил эту ошибку, так как мой набор данных огромен

Thu Aug 02 12:55:24 uncaught exception: distinct failed: {
        "errmsg" : "exception: distinct too big, 16mb cap",
        "code" : 10044,
        "ok" : 0
}

Second attempt

Я решил попробовать и сделать группу

db.myCollection.group({key: {myIndexedNonUniqueField: 1},
                initial: {count: 0}, 
                 reduce: function (obj, prev) { prev.count++;} } );

Но вместо этого я получил это сообщение об ошибке:

exception: group() can't handle more than 20000 unique keys

Third attempt

Я еще не пробовал, но есть несколько предложений, которые включаютmapReduce

например

this one how to do distinct and group in mongodb? (not accepted, answer author / OP didn't test it) this one MongoDB group by Functionalities (seems similar to Second Attempt) this one http://blog.emmettshear.com/post/2010/02/12/Counting-Uniques-With-MongoDB this one https://groups.google.com/forum/?fromgroups#!topic/mongodb-user/trDn3jJjqtE this one http://cookbook.mongodb.org/patterns/unique_items_map_reduce/

Also

Кажется, на GitHub есть запрос на исправление.distinct метод упоминания должен только возвращать счетчик, но он все еще открыт:https://github.com/mongodb/mongo/pull/34

Но в этот момент я подумал, что стоит спросить здесь, что нового в этой теме? Должен ли я перейти на SQL или другую базу данных NoSQL для разных подсчетов? или есть эффективный способ?

Update:

Этот комментарий к официальным документам MongoDB не обнадеживает, верно?

http://www.mongodb.org/display/DOCS/Aggregation#comment-430445808

Update2:

Кажется, новая структура агрегации отвечает на вышеуказанный комментарий ... (MongoDB 2.1 / 2.2 и выше, предварительный просмотр разработки доступен, не для производства)

http://docs.mongodb.org/manual/applications/aggregation/

Ответы на вопрос(3)

Ваш ответ на вопрос