/
tonmalanin
/
bd
Обзор
Документация
Войти
/
tonmalanin
/
bd
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
task3
MongoDB_Script.txt
97 строк
4 KB
Антон Маланьин
task 3
08 апр 2026, 22:37
08 апр 2026, 22:37
e603097
Код
Авторство
О чём код?
// v1 20250301 - первая версия // v2 20260331 - добавлена генерация ФИО. // Переключаемся на базу данных shopsmart use shopsmart; // Удаляем старые коллекции (если существуют) db.products.drop(); db.customers.drop(); db.orders.drop(); // Создаем коллекции db.createCollection("products"); db.createCollection("customers"); db.createCollection("orders"); // Массив категорий для товаров var categories = ["Электроника", "Бытовая техника", "Одежда", "Аксессуары", "Книги"]; // Генерация и вставка 100 товаров var productsBulk = []; for (var i = 1; i <= 100; i++) { var category = categories[Math.floor(Math.random() * categories.length)]; // Цена случайным образом в диапазоне от 100 до 100000, округленная до двух знаков после запятой var price = parseFloat((Math.random() * (100000 - 100) + 100).toFixed(2)); var stock = Math.floor(Math.random() * 200) + 1; // количество на складе от 1 до 200 productsBulk.push({ _id: i, name: "Product " + i, category: category, price: price, stock: stock }); } db.products.insertMany(productsBulk); // Массив городов для клиентов var cities = ["Москва", "Санкт-Петербург", "Новосибирск", "Екатеринбург", "Казань", "Нижний Новгород", "Челябинск", "Самара", "Омск", "Ростов-на-Дону", "Уфа", "Красноярск", "Воронеж", "Пермь", "Волгоград"]; // Генерация и вставка 300 клиентов var customersBulk = []; var names = ["Анна", "Мария", "Елена", "Ольга", "Наталья", "Татьяна", "Светлана", "Ирина", "Юлия", "Екатерина"]; var surnames = ["Иванова", "Сидорова", "Кузнецова", "Попова", "Васильева", "Петрова", "Соколова", "Михайлова", "Новикова", "Фёдорова"]; for (var i = 1; i <= 300; i++) { var city = cities[Math.floor(Math.random() * cities.length)]; var full_name = names[Math.floor(Math.random() * names.length)] + ' ' + surnames[Math.floor(Math.random() * surnames.length)]; customersBulk.push({ _id: i, name: full_name, email: "customer" + i + "@example.com", city: city }); } customersBulk.push({ _id: 301, name: "Мария Сидорова", email: "customer" + 301 + "@example.com", city: cities[0] }); customersBulk.push({ _id: 302, name: "Ольга Кузнецова", email: "customer" + 302 + "@example.com", city: cities[0] }); db.customers.insertMany(customersBulk); // Функция для генерации случайной даты между двумя датами function randomDate(start, end) { return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime())); } // Генерация и вставка 600 заказов var ordersBulk = []; for (var i = 1; i <= 1100; i++) { var customer_id = Math.floor(Math.random() * 300) + 1; // случайный клиент от 1 до 300 var product_id = Math.floor(Math.random() * 100) + 1; // случайный товар от 1 до 100 var quantity = Math.floor(Math.random() * 5) + 1; // количество от 1 до 5 var order_date = randomDate(new Date("2025-03-01T00:00:00Z"), new Date("2025-03-31T23:59:59Z")); ordersBulk.push({ _id: i, customer_id: customer_id, product_id: product_id, quantity: quantity, order_date: order_date }); } db.orders.insertMany(ordersBulk);