Предварительное условие : MongoDB : Введение
MongoDB — это кроссплатформенная база данных, ориентированная на документы, которая работает над концепцией коллекций и документов. MongoDB обеспечивает высокую скорость, высокую доступность и высокую масштабируемость.
Следующий вопрос, который возникает у людей: “Почему MongoDB»?
Причины выбрать MongoDB :
- Он поддерживает иерархическую структуру данных (подробную информацию см. в документах)
- Он поддерживает ассоциированные массивы, такие как словари в Python.
- Встроенные драйверы Python для подключения python — приложения к базе данных. Пример — PyMongo
- Он предназначен для работы с большими данными.
- Развертывание MongoDB очень просто.
Руководство по установке MongoDB и PyMongo
- Сначала запустите MongoDB из командной строки с помощью :
Способ 1:
mongod
или
Способ 2:
net start MongoDB
Смотрите номер порта по умолчанию установлен 27017 (последняя строка на изображении выше).
В Python есть собственная библиотека для MongoDB. Название доступной библиотеки — “PyMongo”. Чтобы импортировать это, выполните следующую команду:
from pymongo import MongoClient
2. Создайте соединение: Самое первое после импорта модуля — создать MongoClient.
from pymongo import MongoClient
client = MongoClient()
После этого подключитесь к хосту и порту по умолчанию. Подключение к хосту и порту выполняется явно. Следующая команда используется для подключения MongoClient на локальном хосте, который работает на порту номер 27017.
client = MongoClient(‘host’, port_number)
example:- client = MongoClient(‘localhost’, 27017)
Это также можно сделать с помощью следующей команды:
client = MongoClient(“mongodb://localhost:27017/”)
3. Доступ к объектам базы данных : Для создания базы данных или переключения на существующую базу данных мы используем:
Способ 1: Словарный стиль
mydatabase = client[‘name_of_the_database’]
Способ 2:
mydatabase = client.name_of_the_database
Если ранее не было создано базы данных с таким именем, MongoDB неявно создаст ее для пользователя.
Примечание : Имя заполнения базы данных не допускает использования в нем тире ( -). Такие имена, как my-Table, вызовут ошибку. Итак, в названии разрешено использовать подчеркивание.
4. Доступ к коллекции : Коллекции эквивалентны таблицам в СУБД. Мы получаем доступ к коллекции в PyMongo таким же образом, как и к таблицам в СУБД. Чтобы получить доступ к таблице, произнесите имя таблицы базы данных “myTable”, произнесите “База данных mydatabase».
Способ 1:
mycollection = mydatabase[‘myTable’]
Способ 2:
mycollection = mydatabase.myTable
MongoDB сохраните базу данных в виде словарей, как показано на рисунке:
record = {
title: 'MongoDB and Python',
description: 'MongoDB is no SQL database',
tags: ['mongodb', 'database', 'NoSQL'],
viewers: 104 }
«_id» — это специальный ключ, который автоматически добавляется, если программист забывает добавить явно.
_id — это шестнадцатеричное число размером 12 байт, которое гарантирует уникальность каждого вставленного документа.
5. Вставьте данные в коллекцию :
Используемые методы:
insert_one() or insert_many()
Обычно мы используем документ метода insert_one() в наших коллекциях. Скажем, мы хотим ввести данные, названные записью, в «таблицу» базы данных «mydatabase».
rec = myTable.insert_one(record)
Весь код выглядит так, когда его нужно реализовать.
# importing module
from pymongo import MongoClient
# creation of MongoClient
client=MongoClient()
# Connect with the portnumber and host
client = MongoClient(“mongodb://localhost:27017/”)
# Access database
mydatabase = client[‘name_of_the_database’]
# Access collection of the database
mycollection=mydatabase[‘myTable’]
# dictionary to be added in the database
rec={
title: 'MongoDB and Python',
description: 'MongoDB is no SQL database',
tags: ['mongodb', 'database', 'NoSQL'],
viewers: 104
}
# inserting the data in the database
rec = mydatabase.myTable.insert(record)
6. Запрос в MongoDB : Существуют определенные функции запросов, которые используются для фильтрации данных в базе данных. Двумя наиболее часто используемыми функциями являются:
- find()
Функция find() используется для получения более одного документа в результате запроса.
for i in mydatabase.myTable.find({title: 'MongoDB and Python'})
print(i)
Это выведет все документы в таблице myTable базы данных mydatabase, название которых » MongoDB и Python’.
2. count()
print(mydatabase.myTable.count({title: 'MongoDB and Python'}))
Это выведет количество документов в myTable базы данных mydatabase, название которых » MongoDB и Python’.
Эти две функции запроса можно суммировать, чтобы получить наиболее отфильтрованный результат, как показано ниже.
print(mydatabase.myTable.find({title: 'MongoDB and Python'}).count())
3. Чтобы распечатать все документы/записи внутри «myTable» базы данных «mydatabase» : Используйте следующий код:
from pymongo import MongoClient
try:
conn = MongoClient()
print("Connected successfully!!!")
except:
print("Could not connect to MongoDB")
# database name: mydatabase
db = conn.mydatabase
# Created or Switched to collection names: myTable
collection = db.myTable
# To find() all the entries inside collection name 'myTable'
cursor = collection.find()
for record in cursor:
print(record)