Лабораторная работа 5. Основы работы в MongoDB

Цель работы

Знакомство с нереляционной документоориентированной СУБД MongoDB. Работа с БД из среды Python.

Задание

  1. Создать подключение к СУБД Mongodb,
  2. Создать коллекцию документов.
  3. Написать пример документа в формате json из предметной области лабораторных работ 2 и 3.
  4. Добавить в коллекцию четыре различных документа.
  5. Вывести список документов в коллекции со всеми атрибутами, выполнив запрос к базе данных.
  6. Вывести основные атрибуты части документов коллекции, удовлетворяющих некоторому условию (использовать условия «меньше», «больше»)

Примеры документов

  1. Библиотека. Читательский билет с записями о книгах, находящихся у читателя.
  2. Аптека. Товарный чек с информацией о купленных лекарствах.
  3. Больница. Информация о лечении: пациент, врач, дата начала, дата окончания, виды лечения (список).
  4. Предприятие. Информация о сотруднике и истории его назначений.
  5. Курьерская доставка. Информация о посылке: отправитель (Ф.И.О., адрес отправления, паспортные данные), получатель (Ф.И.О, адрес получения, паспортные данные), масса и габариты посылки, информация о курьере и датах отправления и получения.
  6. Повышение квалификации. Список курсов университета: Даты проведения, информация о преподавателе, наименование, количество часов, записанные на курсы сотрудники (до 3).
  7. Научная конференция. Программа конференции: дата и наименование конференции, несколько секций со списком статей в каждой секции.
  8. Прокат велосипедов. Информация об использовании велосипеда: дата начала, дата окончания, марка (тип), информация о клиенте, стоимость.
  9. Футбольный турнир (РФПЛ). Игры: команда 1, основной состав (достаточно указать 3 игроков), команда 2, основой состав (достаточно указать 3 игроков), счет, информация о голах.
  10. Пиццерия. Информация о пиццерии со списком продаваемых пицц.
  11. Кулинарная книга. Рецепт.
  12. Поликлиника. Информация о посещениях: дата, врач, посетитель, диагноз.
  13. Сессия. Результаты экзаменов с указанием информации о преподавателе и списке студентов с оценками (до 5 студентов).
  14. Расписание занятий. Расписание занятий на 1 день (для нескольких групп)
  15. Социальная сеть. Изобразите диаграмму сущность связь для социальной сети Сообщения с главной страницы: дата, текст, комментарии (автор, текст).
  16. Интернет-магазин мебели. Товарный чек с информацией о товарах, покупателе и магазине.
  17. Онлайн кинотеатр. Информация о пользователе: Имя, предпочтения, список просмотренных фильмов (жанр, наименование, дата просмотра, длительность).
  18. Бронирование авиабилетов. Информация о заказанных билетах: пункт А в пункт Б, дата, вес багажа, тип меню.
  19. Музыкальные альбомы. Музыкальные альбомы.
  20. Бронирование авиабилетов. Брони.
  21. Курсы и студенты. Проекты: дата начала и окончания, информация о сотрудниках в проекте (до трех): имя, идентификационный номер, адрес, зарплата и дата рождения.
  22. Галереи. Несколько групп со списком произведений в каждой группе.
  23. Сеть отелей. Информация об истории бронирования номеров: дата начала, окончания, список постояльцев, стоимость.
  24. Прокат автомобилей. Список автомобилей с историей их использования.
  25. КХЛ. Информация об играх: команда 1, основной состав (достаточно указать 3 игроков), команда 2, основой состав (достаточно указать 3 игроков), счет, информация о голах.
  26. Книжный онлайн-магазин. Товарный чек.
  27. Мастерская. Коллекция документов с информациях о заказах: дана начала и окончания, имя мастера, имя клиента, техника, ее вид, список работ.
  28. ЖЭК. Список заявок: дана начала и окончания работ, адрес клиента, бригада специалистов со списком специалистов.
  29. Парки. Информация о трех парках, с указанием наименования, площади, место адреса и списка павильонов (до трех): наименование, тип (кафе, продуктовый, развлекательный, прокат вещей), занимаемая площадь.

Методические рекомендации

Имя пользователя и пароль совпадают с именем и паролем для подключения к СУБД MySQL в лабораторной работе 3. Имя базы данных совпадает с именем пользователя.

Документ в формате json

{
id: 1155151,
date: "2020-05-20",
buyer: "Луаврик Л. Луаврик",
items: [
		{
		code: 41155415,
		name: "256 ГБ SSD-накопитель Transcend 230S",
		price: 4750.00
		},
		{
		code: 115521856,
		name: "Зеркальная камера Nikon D3500 Kit 18-140mm VR AF-S",
		price: 48000.00
		}	
		],
total: 52750.00,
payment_type: "наличные"
}