В настоящее время я использую MapReduce MongoDB для создания почасовых просмотров объявлений, например:
{ _id : "4/1/2011 9:00 AM", value : { AdViews_Total : 4 } }
Это прекрасно работает, и я получаю результаты в коллекции, которую впоследствии могу запросить гораздо быстрее, чем исходные данные. Теперь я хотел бы сделать что-то вроде этого:
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "Internet Explorer" : 4, "FireFox" : 4 } } }
Я думаю, что для этого мне понадобится объединить два или более непересекающихся документа в моей операции сокращения, например:
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "FireFox" : 3 } } }
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "FireFox" : 1 } } }
{ _id : "4/1/2011 9:00 AM", value : { ByBrowser : { "Internet Explorer" : 4 } } }
Кто-нибудь знает, как может выглядеть такая операция Reduce, имея в виду, что имена браузеров не известны заранее?