← К оглавлению занятия

📖 Теория

📁 Блок: Revision / MongoDB и Colab ⏱️ Время изучения: ~90 мин 🎯 Сложность: Повторение

⚡ Кратко: суть занятия

Revision 2 повторяет подключение MongoDB из Python и запросы к ich.Spotify_Youtube.

В Python используется pymongo: MongoClient, выбор базы, выбор коллекции, find, list(...), DataFrame и close.

Источник показывает read-only подключение к ich и пример подключения с правами редактирования к ich_edit.

Повторение MongoDB включает равенство по Artist, диапазоны Danceability/Tempo, логические $and, regex и $in/$all.

Aggregation-повторение перечисляет $match, $group, $project, $sort, $limit, $unwind, $lookup, $out, $geoNear, $bucket, $merge, $sample и $facet.

Фасетирование возвращает несколько независимых результатов, например AlbumTypes и avgEnergy.

Домашка 20 объединяет MySQL sakila и MongoDB restaurants.

Топ-3 ошибки: публиковать реальные пароли, путать regex /hot/ и /hot/i, забыть закрыть MongoClient.

Разбор темы

Подключение через pymongo

Источник требует установить pymongo и создать MongoClient с URI подключения. Затем выбирается база db = client["ich"] и коллекция db["Spotify_Youtube"].

DataFrame из MongoDB

find() возвращает cursor. Для pandas его обычно превращают в list(collection.find()), затем pd.DataFrame(data).

Read-only и edit-подключение

В источнике показаны два подключения: к ich для чтения и к ich_edit для редактирования. Это важно, потому что insert_one должен выполняться там, где есть права записи.

Базовые фильтры

Равенство Artist: "Gorillaz", диапазоны $gt для Danceability и Tempo, $and для Energy и Valence.

Regex-поиск

/Good/ регистрозависим, /hot/i регистронезависим. $in с несколькими regex проверяет варианты, $all требует наличие нескольких паттернов.

Aggregation stages

Источник повторяет основные стадии: $match фильтрует, $group агрегирует, $project меняет форму, $sort сортирует, $limit ограничивает, $unwind разворачивает массивы, $lookup объединяет коллекции.

$facet

$facet запускает несколько независимых pipeline в одном запросе. В источнике результат содержит AlbumTypes и avgEnergy.

Проверить по документации: дополнительные формы синтаксиса, параметры драйверов и поведение отдельных стадий могут отличаться между версиями MySQL, MongoDB, Compass, Atlas или Python-библиотек. Перед использованием в проекте сверяйте детали с официальной документацией.