Учитывая документ
{_id:110000, groupings:{A:'AV',B:'BV',C:'CV',D:'DV'},coin:{old:10,new:12}}
Мои спецификации требуют спецификации атрибутов для сопоставления и агрегации во время выполнения, поскольку группы, заинтересованные пользователем, неизвестны заранее, но указаны пользователем во время выполнения.
Например, один пользователь будет указывать [A, B], что приведет к отображению выбросов
emit( {A:this.groupings.A,B:this.groupings.B},this.coin )
в то время как другой хотел бы указать [A, C], что приведет к отображению выбросов
emit( {A:this.groupings.A,C:this.groupings.C},this.coin )
B/c функции отображения и редуктора выполняют серверную часть и не имеют доступа к клиентским переменным, я не смог придумать способ использования ключа переменной карты в функции mapper.
Если бы я мог ссылаться на список вещей, которые можно группировать из области выполнения функции карты, все это очень просто. Тем не менее, b/c функция сопоставления заканчивается тем, что получает их из разных областей, я не знаю, как это сделать, или если это возможно.
Прежде чем я начну пытаться динамически строить java script для выполнения через драйвер, есть ли у кого-нибудь лучшее предложение? Может быть, функция "группы" справится с этим сценарием лучше?