Рубрики
Без рубрики

Работа с MongoDB и Python

MongoDB-это распределенная база данных NOSQL, на основе общего назначения, на основе документов. Он хранит данные в семье … Tagged с Python, MongoDB, новичком, учебником.

MongoDB-это распределенная база данных NOSQL, на основе общего назначения, на основе документов. Он хранит данные в знакомым формате JSON, с которым многие разработчики чувствуют себя комфортно. В этой статье давайте посмотрим на то, как начать работу с MongoDB в среде Python, выполняя базовые операции Create, Reading, Update и Delete (CRUD).

Почему mongodb?

Традиционные реляционные системы баз данных (RDBMS) имеют крутой кривую обучения, так как необходимо освоить концепции базы данных и SQL. Поскольку MongoDB не имеет строгих требований к схеме, его относительно очень легко начать. Вот Сравнение между nosql и rdbms.

Основные термины MongoDB

Чтобы использовать MongoDB, необходимо понять основные термины, используемые MongoDB. MongoDB организует данные по документу. Итак, ряд данных в MongoDB называется Документ Анкет В RDBMS таблицы содержат количество строк, в то время как в таблицах MongoDB называются Коллекции как они содержат группу документов. Ниже таблицы перечисляет основные термины реляционной базы данных вместе с ее эквивалентом в MongoDB:

База данных База данных
Столы Коллекции
Строки Документы
Колонны Поля
Показатель Показатель

Как установить mongodb?

Установка MongoDB с использованием Docker прямо. Вот команды для установки с помощью Docker.

docker pull mongo
#Running Mongo as a background task with data mapped to external home/mongo/data folder 
docker run -d mongo -v /home/mongo/data:/data/db --name mongodb

Это Ссылка Содержит инструкции по установке для других сред.

Как работать с MongoDB в Python?

Чтобы работать с MongoDB в Python, нужно установить Pimongo Драйвер с использованием команды – Python -m Pip установить Pymongo

Как создать коллекцию в MongoDB?

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

from pymongo import MongoClient

#Step 1: Connect to MongoDB - Change connection string as needed
client = MongoClient(port=27017)
db=client.booksdb

#Step 2: Prepare sample data
book_list = ["Automate the Boring Stuff with Python: Practical Programming for Total Beginners",
            "Python for Everybody: Exploring Data in Python 3",
            "Dive Into Python 3",
            "Test Book"]
author_list = ["Al Sweigart",
            "Dr. Charles Russell Severance, Sue Blumenberg, Elliott Hauser, Aimee Andrion",
                "Mark Pilgrim",
                "Test Author"]
publication_year_list = [2015, 2016, 2012, 2020]

#Step 3: Insert sample data
for idx in range(0, 4):
    book = {
        'title' : book_list[idx],
        'author' : author_list[idx],
        'pub_year' : publication_year_list[idx]
    }
    #Step 4: Insert book object by using MongoDB's isnert_one
    result=db.books.insert_one(book)
    #Step 5: Print ObjectID of the new document
    print(f'Created {idx+1} of 4 as {result.inserted_id}')

print('Finished creating books')

Обратите внимание, что MongoDB автоматически добавляет _ id Поле с уникальным значением идентификатора для каждого документа во время создания документа.

Как запросить коллекции в MongoDB?

Ниже листинг показывает, как запросить коллекцию, соответствующую критериям и запросить все документы в коллекции.

from pymongo import MongoClient
from pprint import pprint

#Connect to MongoDB
client = MongoClient(port=27017)
db=client.booksdb

# Print one of the books matching criteria
book = db.books.find_one( { 'pub_year': 2020} )
pprint(book)

# Print all of the books
books = db.books.find( { } )
for bk in books:
    pprint(bk)

Как обновить коллекции в MongoDB?

В отличие от традиционных баз данных, новые поля могут быть добавлены в определенную строку данных. Ниже листинг добавляет copies_sold колонка в книгу Документ с годом публикации 2015 года.

from pymongo import MongoClient
from pprint import pprint

#Connect to MongoDB
client = MongoClient(port=27017)
db=client.booksdb

#Find document
book = db.books.find_one( { 'pub_year': 2015} )
pprint(book)

#Update document
result = db.books.update_one({'_id' : book.get('_id') }, {'$inc': {'copies_sold': 50}})
print('Number of documents modified : ' + str(result.modified_count))

#Print updated document
updated_book = db.books.find_one({'_id':book.get('_id')})
print('The updated document:')
pprint(updated_book)

Как удалить документы в MongoDB?

Вот образец списка, содержащий удаление документа, соответствующий определенным критериям.

from pymongo import MongoClient

#Connect to MongoDB
client = MongoClient(port=27017)
db=client.booksdb

#Delete document matching sample criteria
result = db.books.delete_many({"title": "Test Book"})

#Print deletion count
print(f'Deleted {result.deleted_count} documents!')

Дальнейшее чтение

Чтобы узнать больше о MongoDB, пожалуйста, посетите Документация MongoDB.

Оригинал: “https://dev.to/dev0928/working-with-mongodb-and-python-1e2i”