distinct
Быстро получить уникальные значения поля.
db.UK_used_cars_NAME.distinct("manufacturer")Практикум 19 работает с собственной копией коллекции UK_used_cars.
Сначала нужно экспортировать ich.UK_used_cars или импортировать JSON из GitHub в ich_edit с личным суффиксом.
Базовые задачи проверяют производителей: список марок, максимум документов и распределение по transmission.
Для среднего пробега по производителям используется $group с $avg и счётчиком документов.
mpg переводится в l/100km формулой 282.481 / mpg и сохраняется как новое поле.
$merge нужен, чтобы записать вычисленное поле обратно в существующую коллекцию.
$bucket распределяет дизельные авто по диапазонам цены до 20000, 20000-30000, 30000-40000, 40000-60000 и выше 60000.
Топ-3 ошибки: работать в общей коллекции без копии, делить mpg на 282.481 вместо обратной формулы, забыть readable labels для bucket-категорий.
Быстро получить уникальные значения поля.
db.UK_used_cars_NAME.distinct("manufacturer")Сгруппировать документы и посчитать количество/среднее.
{ $group: { _id: "$manufacturer", cars: { $sum: 1 }, avgMileage: { $avg: "$mileage" } } }Оставить топ производителей по среднему пробегу.
{ $sort: { avgMileage: -1 } }, { $limit: 3 }Добавить l/100km по формуле из источника.
{ $set: { litersPer100km: { $divide: [282.481, "$mpg"] } } }Сохранить вычисленное поле в существующую коллекцию.
{ $merge: { into: "UK_used_cars_NAME", whenMatched: "merge", whenNotMatched: "discard" } }Распределить дизельные авто по ценовым диапазонам.
{ $bucket: { groupBy: "$price", boundaries: [0, 20000, 30000, 40000, 60000], default: "60000+" } }SQL: справочник SQL. MongoDB: справочник MongoDB.