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”