Pull to refresh

Comments 8

Спасибо большое за статью. Очень просто и очень понятно!
Вообще, Aggregation Framework следует применять там, где требуется быстрый отклик, в то время как Map-Reduce предназначен для предварительной обработки сырой информации

Я бы раскрыл тему, а то не особо понятно, что это значит.
А именно
а) Aggregation framework умеет утилизировать индексы(иногда). MR, очевидно всегда делает перебор.
Отсюда следует что AF работает не во сколько-то там раз быстрее, а имеет лучшую асимптотику(опять же, иногда, в монго на эту тему есть хорошая документация).
б) AF работает с нативными функциями, так что есть и другая составляющая скорости.
в) AF имеет весьма стремный синтаксис, в отличие от MR
Как по мне, для 90% повседневных нужд написать запрос для AF гораздо проще и быстрее, чем функции MR, а благодаря конвеерной обработке еще и очень привычно для пользователей *nix систем.
Aggregation framework умеет утилизировать индексы(иногда). MR, очевидно всегда делает перебор.

Поправлю: MapReduce тоже может использовать индексы — в функции mapReduce есть query параметр который позволяет сузить первоначальную выборку.
У меня, почему-то, функция mapReduce каждый раз выводит объект со статистикой, но не выдает мне результатов. Что может быть не так?

{
«result»: «interests_by_age»,
«timeMillis»: 4,
«counts»: {
«input»: 3,
«emit»: 3,
«reduce»: 1,
«output»: 2
},
«ok»: 1,
}
docs.mongodb.org/manual/reference/command/mapReduce/#dbcmd.mapReduce

out –
New in version 1.8.
Specifies the location of the result of the map-reduce operation. You can output to a collection, output to a collection with an action, or output inline. You may output to a collection when performing map reduce operations on the primary members of the set; on secondary members you may only use the inline output.

Вы очевидно указали out:«interests», как в примерах.
В качестве результата («result»: «interests_by_age»), Вы указали название коллекции, в которую и будет записан результат — «interests_by_age».
Если коллекция с таким именем существует, все данные в ней буду перезаписаны.
Sign up to leave a comment.

Articles