Итак, я перемещаю часть своего кода из sql в mongodb, и мне мало что еще не ясно.Каков наилучший подход для запроса mongodb с суммой и сортировкой
Скажем, у меня есть следующий простой SQL-запрос (просто пример)
select count(a.id) as count, b_id
from table group by b_id
where c_id=[SOME ID]
group by b_id
order by count desc;
я предполагаю, все понимают, что это делает.
Теперь с помощью mongo я могу использовать несколько подходов, сделать все это на стороне mongo, извлечь полученные результаты и отсортировать их на стороне клиента или просто получить необработанные данные на стороне клиента и выполнить всю обработку.
Что было бы лучшим подходом для запроса выше, чтобы сделать все это в базе данных с помощью некоторого внутреннего механизма mongodb (mapreduce и т. Д.) Или получить коллекцию на стороне клиента и обработать ее там. Набор данных в целом будет огромным, но при необходимости запрос можно разделить на несколько частей.
Клиент - это Java, если это имеет значение.
Я пока не готов к производству, поэтому, на ваш взгляд, структура агрегации всегда наилучшим образом подходит для случая выше? – mikkom
За исключением управления агрегированными данными вручную (что очень ситуативно) да. AF является полностью родным, тогда как группа и m/r работают на базе JavaScript и, таким образом, однопоточные и (относительно) медленные. Честно говоря, если вы хотите, чтобы m/r я интегрировал с Hadoop, а не использовал MongoDB m/r –
Спасибо, я думаю, что мне придется установить последнюю неустойчивость. – mikkom