$bucket
$bucket группирует документы по диапазонам значения. В источнике он используется для цен за ночь и средних оценок ресторанов.
Первая часть практической отработки MongoDB строится вокруг aggregation pipeline.
$bucket распределяет документы по диапазонам: например цены жилья в Барселоне.
$unwind превращает каждый элемент массива reviews в отдельный документ.
$set и $unset помогают превратить вложенный объект отзыва в плоский документ.
$out записывает результат агрегации в новую коллекцию reviews.
$merge обновляет существующую коллекцию, когда нужно добавить вычисленные поля.
$map, $multiply и $sum позволяют посчитать total по массиву items в sales.
Топ-3 ошибки: забыть $match перед $bucket, использовать $out вместо $merge для обновления, неправильно обратиться к $$item внутри $map.
$bucket группирует документы по диапазонам значения. В источнике он используется для цен за ночь и средних оценок ресторанов.
Чтобы сделать один документ на один отзыв, массив reviews нужно развернуть через $unwind.
$set копирует поля из вложенного reviews в верхний уровень документа, а $unset удаляет исходный объект reviews.
$out создаёт или перезаписывает коллекцию результатом pipeline. $merge подходит, когда нужно обновить существующие документы.
$map проходит по items, $multiply считает price * quantity, а внешний $sum складывает элементы массива.