Например, существует такая коллекция:
{market: 'SH', код: '000001', дата: '2012-01-01', цена: 1000}
{market: 'SZ', код: '000001', дата: '2012-01-01', цена: 1000}
{market: 'SH', код: '000001', дата: '2012-01-02', цена: 1000}
{market: 'SZ', код: '000001', дата: '2012-01-02', цена: 1000}
{market: 'SH', код: '000002', дата: '2012-01-03', цена: 1000}
...
Эта коллекция содержит десятки миллионов документов.
Я хочу назвать разным два ключа:
collection.distinct('market', 'code');
и получить результат:
[{market: 'SH', код: '000001'}, {market: 'SZ', код: '000001'}, {market: 'SH', код: '000002'}]
Поскольку встроенная отдельная команда принимает только один ключ, я пытаюсь реализовать ее, используя map-reduce. Но map-reduce слишком медленный, чтобы явные отличия. В моем однократном отдельном тесте, map-reduce тратит примерно в десять раз дольше, чем родной.
Есть ли эффективный способ реализации мультикии?