You are currently viewing MongoDB и Python

MongoDB и Python

Предварительное условие : MongoDB : Введение

MongoDB — это кроссплатформенная база данных, ориентированная на документы, которая работает над концепцией коллекций и документов. MongoDB обеспечивает высокую скорость, высокую доступность и высокую масштабируемость.
Следующий вопрос, который возникает у людей: “Почему MongoDB»?

Причины выбрать MongoDB :

  1. Он поддерживает иерархическую структуру данных (подробную информацию см. в документах)
  2. Он поддерживает ассоциированные массивы, такие как словари в Python.
  3. Встроенные драйверы Python для подключения python — приложения к базе данных. Пример — PyMongo
  4. Он предназначен для работы с большими данными.
  5. Развертывание MongoDB очень просто.

Руководство по установке MongoDB и PyMongo

  1. Сначала запустите 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 : Существуют определенные функции запросов, которые используются для фильтрации данных в базе данных. Двумя наиболее часто используемыми функциями являются:

  1. 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)