Published on

August 31, 2021

Подключение к MongoDB с помощью SQLAlchemy в Python

Python – мощный язык программирования, который предлагает широкий спектр модулей и инструментов для интеграции с различными системами. Один из таких модулей – CData Python Connector для MongoDB, который позволяет эффективно создавать приложения и скрипты на Python, связанные с MongoDB. В этой статье мы рассмотрим, как использовать SQLAlchemy, популярный инструментарий, для подключения к данным MongoDB и выполнения различных операций, таких как запросы, обновление, удаление и вставка данных.

Подключение к данным MongoDB

Подключение к данным MongoDB аналогично подключению к любой другой реляционной базе данных. Вам необходимо создать строку подключения, используя необходимые параметры подключения. Например:

engine = create_engine("mongodb:///?Server=MyServer&;Port=27017&Database=test&User=test&Password=Password")

После установления соединения вы можете получить доступ к коллекциям MongoDB в виде таблиц с использованием автоматического обнаружения схемы или написав свои собственные определения схемы. Схемы определяются в файлах .rsd, которые имеют простой формат. Вы также можете выполнять запросы произвольной формы, не привязанные к схеме.

Установка необходимых модулей

Для начала вам необходимо установить инструментарий SQLAlchemy. Вы можете сделать это с помощью утилиты pip:

pip install sqlalchemy

Убедитесь, что импортируете модуль в свой скрипт Python:

import sqlalchemy

Моделирование данных MongoDB в Python

После установки необходимых модулей вы можете подключиться к MongoDB с использованием строки подключения. После подключения вы можете объявить класс отображения для таблицы, которую вы хотите моделировать в объектно-реляционном отображении (ORM). Например:

base = declarative_base()

class restaurants(base):
    __tablename__ = "restaurants"
    borough = Column(String, primary_key=True)
    cuisine = Column(String)
    # ... добавьте больше столбцов при необходимости

Этот класс отображения представляет таблицу “restaurants” в MongoDB. Вы можете определить столбцы и их типы данных с использованием класса Column в SQLAlchemy.

Запрос данных MongoDB

Подготовив класс отображения, вы можете использовать объект сеанса для запроса источника данных MongoDB. Вот пример:

factory = sessionmaker(bind=engine)
session = factory()

for instance in session.query(restaurants).filter_by(Name="Morris Park Bake Shop"):
    print("borough: ", instance.borough)
    print("cuisine: ", instance.cuisine)
    print("---------")

В этом примере мы запрашиваем таблицу “restaurants” и фильтруем результаты по имени ресторана. Вы также можете использовать метод execute с соответствующим объектом таблицы для более сложных запросов.

Вставка, обновление и удаление данных MongoDB

Чтобы вставить данные в MongoDB, вы можете определить экземпляр отображаемого класса и добавить его в активный сеанс. Вот пример:

new_rec = restaurants(borough="placeholder", Name="Morris Park Bake Shop")
session.add(new_rec)
session.commit()

Чтобы обновить данные в MongoDB, вы можете получить желаемую запись(и) с помощью запроса с фильтром, изменить значения полей и затем вызвать функцию commit на сеансе, чтобы отправить измененную запись в MongoDB. Вот пример:

updated_rec = session.query(restaurants).filter_by(SOME_ID_COLUMN="SOME_ID_VALUE").first()
updated_rec.Name = "Morris Park Bake Shop"
session.commit()

Чтобы удалить данные из MongoDB, вы можете получить желаемую запись(и) с помощью запроса с фильтром, удалить запись с активным сеансом, а затем вызвать функцию commit на сеансе для выполнения операции удаления. Вот пример:

deleted_rec = session.query(restaurants).filter_by(SOME_ID_COLUMN="SOME_ID_VALUE").first()
session.delete(deleted_rec)
session.commit()

Заключение

Используя SQLAlchemy, вы можете легко подключаться к данным MongoDB и выполнять различные операции, такие как запросы, обновление, удаление и вставка данных. CData Python Connector для MongoDB расширяет эту функциональность, позволяя создавать приложения и скрипты на Python, использующие объектно-реляционное отображение данных MongoDB в SQLAlchemy. Благодаря возможности выполнять сложные SQL-запросы и использовать встроенный SQL-движок, вы можете эффективно и эффективно работать с данными MongoDB.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.