Как эффективно выполнять «разные» с несколькими ключами?

Например, есть такая коллекция:

{market: 'SH', code: '000001', date: '2012-01-01', price: 1000}
{market: 'SZ', code: '000001', date: '2012-01-01', price: 1000}
{market: 'SH', code: '000001', date: '2012-01-02', price: 1000}
{market: 'SZ', code: '000001', date: '2012-01-02', price: 1000}
{market: 'SH', code: '000002', date: '2012-01-03',price: 1000}
...

Эта коллекция содержит десятки миллионов документов.

Я хочу позвонить отличным с двумя ключами:

collection.distinct('market', 'code');

и получить результат:

[{market: 'SH', code:'000001'}, {market: 'SZ', code:'000001'}, {market: 'SH', code:'000002'}]

Поскольку нативная отличная команда принимает только один ключ, я пытаюсь реализовать ее с помощью map-Reduce. Но сокращение карты слишком медленное, чтобы различать его. В моем отдельном тесте с одним ключом расходы на карту уменьшаются примерно в десять раз дольше, чем в обычном тесте.
Есть ли эффективный способ реализации нескольких ключей?

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

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