1. Набір даних "Фільми"
Ви можете використовувати набір даних sample_mflix.movies
з MongoDB Atlas або створити власний тестовий набір.
Приклад набору даних:
[
{
"title": "Inception",
"year": 2010,
"genres": ["Action", "Sci-Fi", "Thriller"],
"imdb": { "rating": 8.8, "votes": 2000000 },
"cast": ["Leonardo DiCaprio", "Joseph Gordon-Levitt"],
"boxOffice": 836800000
},
{
"title": "The Dark Knight",
"year": 2008,
"genres": ["Action", "Crime", "Drama"],
"imdb": { "rating": 9.0, "votes": 2300000 },
"cast": ["Christian Bale", "Heath Ledger"],
"boxOffice": 1004558444
},
{
"title": "Interstellar",
"year": 2014,
"genres": ["Adventure", "Drama", "Sci-Fi"],
"imdb": { "rating": 8.6, "votes": 1500000 },
"cast": ["Matthew McConaughey", "Anne Hathaway"],
"boxOffice": 701729206
}
]
2. Набір даних "Продажі"
Ви можете практикуватися з набором даних, який містить інформацію про транзакції продажів.
Приклад набору даних:
[
{
"orderId": 101,
"customerId": 1,
"date": "2025–01–15",
"items": [
{ "product": "Laptop", "quantity": 1, "price": 800 },
{ "product": "Mouse", "quantity": 2, "price": 20 }
],
"totalAmount": 840,
"status": "completed"
},
{
"orderId": 102,
"customerId": 2,
"date": "2025–01–17",
"items": [
{ "product": "Phone", "quantity": 1, "price": 500 },
{ "product": "Charger", "quantity": 1, "price": 25 }
],
"totalAmount": 525,
"status": "completed"
},
{
"orderId": 103,
"customerId": 1,
"date": "2025–01–20",
"items": [
{ "product": "Tablet", "quantity": 1, "price": 300 }
],
"totalAmount": 300,
"status": "pending"
}
]
3. Набір даних "Студенти"
Цей набір даних ідеально підходить для практики запитів, пов'язаних з освітою чи іспитами.
Приклад набору даних:
[
{
"studentId": 1,
"name": "John Doe",
"age": 20,
"subjects": [
{ "name": "Math", "score": 85 },
{ "name": "English", "score": 78 }
],
"attendance": 90
},
{
"studentId": 2,
"name": "Jane Smith",
"age": 21,
"subjects": [
{ "name": "Math", "score": 92 },
{ "name": "English", "score": 88 }
],
"attendance": 95
},
{
"studentId": 3,
"name": "Alice Johnson",
"age": 19,
"subjects": [
{ "name": "Math", "score": 76 },
{ "name": "English", "score": 65 }
],
"attendance": 85
}
]
4. Набір даних "Продукти електронної комерції"
Тестовий набір даних про інвентаризацію продуктів для практики запитів, пов’язаних із товарами.
Приклад набору даних:
[
{
"productId": "P001",
"name": "Wireless Keyboard",
"category": "Electronics",
"price": 25,
"stock": 150,
"ratings": [4, 5, 3, 4]
},
{
"productId": "P002",
"name": "Office Chair",
"category": "Furniture",
"price": 120,
"stock": 50,
"ratings": [5, 4, 5, 4]
},
{
"productId": "P003",
"name": "Water Bottle",
"category": "Kitchen",
"price": 10,
"stock": 300,
"ratings": [3, 4, 4, 5]
}
]
5. Реальні набори даних
Ви можете завантажити безкоштовні набори даних онлайн для практики.
Ресурси:
- MongoDB Atlas Sample Data
- Приклад наборів даних у MongoDB Atlas
- Містить набори даних, такі як sampleairbnb, samplemflix тощо.
- Kaggle
- Набори даних Kaggle
- Завантажуйте набори JSON і імпортуйте їх у MongoDB.
- Data.gov
- Публічні набори даних
- Пропонує широкий спектр наборів даних у форматі JSON або CSV.
- Open Data Portal
- Портали відкритих даних
- Переглядайте урядові та приватні набори даних.
1. Набір даних "Фільми"
Питання:
- Знайти середній рейтинг IMDb усіх фільмів.
- Використовуйте $group і $avg.
- Знайти 3 фільми з найвищими касовими зборами.
- Використовуйте $sort і $limit.
- Отримати загальну кількість фільмів за жанром.
- Використовуйте $unwind і $group.
- Знайти фільм з найбільшою кількістю голосів на IMDb.
- Використовуйте $sort і $limit.
- Отримати загальний касовий збір фільмів, випущених після 2010 року.
- Використовуйте $match і $group.
1.
Перелік усіх унікальних жанрів, що є в наборі даних.
- Використовуйте $unwind та $group.
Знайти середній рейтинг IMDb для кожного жанру.
- Використовуйте $unwind, $group та $avg.
Знайти 2 найкращі фільми з найвищим рейтингом IMDb, згруповані за жанром.
- Використовуйте $unwind, $sort, $group та $limit.
Обчислити загальну кількість акторів у всіх фільмах.
- Використовуйте $project та $size.
Набір даних "Продажі"
Питання:
- Знайти загальну суму продажів для кожного клієнта.
- Використовуйте $group.
- Отримати загальну кількість проданих одиниць кожного продукту.
- Використовуйте $unwind та $group.
- Знайти 2 клієнтів, які витратили найбільше.
- Використовуйте $group, $sort та $limit.
- Отримати загальну кількість замовлень зі статусом "completed".
- Використовуйте $match та $count.
- Обчислити середню суму замовлення серед усіх замовлень.
- Використовуйте $group та $avg.
- Перелічити продукти, які були продані більше ніж в одному замовленні.
- Використовуйте $unwind, $group та $match.
- Знайти загальний дохід, отриманий у конкретну дату (наприклад, 2025-01-15).
- Використовуйте $match та $group.
- Обчислити загальний дохід, отриманий за кожен день.
- Використовуйте $group з $dateToString.
- Перелічити унікальні продукти, продані у всіх замовленнях.
- Використовуйте $unwind та $group.
Набір даних "Студенти"
Питання:
- Знайти середній бал з кожного предмета серед усіх студентів.
- Використовуйте $unwind та $group.
- Отримати найкращого студента з предмету "Math".
- Використовуйте $unwind, $match, $sort та $limit.
- Знайти загальну відвідуваність усіх студентів.
- Використовуйте $group.
- Перелічити студентів, які набрали більше 80 балів з будь-якого предмета.
- Використовуйте $unwind та $match.
- Обчислити середній відсоток відвідуваності серед усіх студентів.
- Використовуйте $group та $avg.
- Отримати загальну кількість предметів, на які записаний кожен студент.
- Використовуйте $project та $size.
- Знайти студентів, які отримали менше 70 балів з предмета "English".
- Використовуйте $unwind, $match.
- Групувати студентів за їх відвідуваністю (наприклад, >90%, 80–90%, <80%).
- Використовуйте $bucket.
- Знайти студента з найвищим загальним балом за всіма предметами.
- Використовуйте $unwind, $group та $sort.
Набір даних "Продукти електронної комерції"
Питання:
- Знайти середній рейтинг кожного продукту.
- Використовуйте $project та $avg.
- Перелічити 2 продукти з найбільшим запасом.
- Використовуйте $sort та $limit.
- Отримати загальну кількість запасу всіх продуктів у кожній категорії.
- Використовуйте $group.
- Знайти продукти із середнім рейтингом більше 4.
- Використовуйте $project та $match.
- Обчислити загальний дохід, якщо весь запас кожного продукту буде проданий.
- Використовуйте $project з $multiply.
- Знайти категорію з найбільшим загальним запасом.
- Використовуйте $group, $sum та $sort.
- Перелічити продукти, які мають рейтинги від щонайменше 3 користувачів.
- Використовуйте $project та $filter.
- Знайти найдорожчий продукт у кожній категорії.
- Використовуйте $group та $sort.
- Обчислити загальний дохід від усіх продуктів.
- Використовуйте $group.