aggregate()
Запускает pipeline и позволяет записать результат через $out.
db.movies.aggregate([{ $match: { "imdb.rating": { $gte: 8 } } }])
Практикум 17 закрепляет MongoDB Atlas, Compass, mongosh, импорт CSV, текстовые и составные индексы.
Первая задача: выбрать фильмы и сериалы с IMDb рейтингом 8 и выше, отсортировать по рейтингу и записать 50 документов в highly_rated_movies.
Если работа идёт в общей базе ich_edit, к имени новой коллекции нужно добавить своё имя для уникальности.
Вторая часть практикума: импортировать BankChurners.csv в credit_cards и исключить четыре последних технических столбца.
Для поля Education_Level создаётся text index, затем выполняется $text поиск и проверяется explain-план.
Составной индекс Education_Level + Customer_Age должен помогать фильтрации и сортировке по этим полям.
Второй составной индекс Income_Category + Total_Trans_Amt нужен для запросов по доходу и сумме транзакций.
Топ-3 ошибки: не уникализировать имя коллекции, импортировать лишние Naive_Bayes поля, проверять индекс без explain().
Запускает pipeline и позволяет записать результат через $out.
db.movies.aggregate([{ $match: { "imdb.rating": { $gte: 8 } } }])
Фильтрует документы по условию.
{ $match: { "imdb.rating": { $gte: 8 } } }
Упорядочивает документы; -1 означает убывание.
{ $sort: { "imdb.rating": -1 } }
Оставляет заданное количество документов.
{ $limit: 50 }
Записывает результат pipeline в новую коллекцию.
{ $out: "highly_rated_movies" }
Создаёт text или составной индекс.
db.credit_cards.createIndex({ Education_Level: "text" })
Ищет документы по текстовому индексу.
db.credit_cards.find({ $text: { $search: "Graduate" } })
Показывает, использует ли запрос индекс.
db.credit_cards.find({ $text: { $search: "Graduate" } }).explain("executionStats")
Локальный каталог MongoDB: справочник MongoDB. SQL-операторы предыдущих блоков: справочник SQL.