Базы данных: MongoDB
MongoDB — документная база данных. Данные хранятся в виде коллекций (аналог таблиц в реляционной БД) и документов (аналог строк таблицах в реляционной БД). Документы — JSON объекты.
Запуск
Запустить MongoDB проще всего через docker.
docker run -d --name mongodb \
-p 27017:27017 \
mongodb/mongodb-community-server:latest
MongoDB Shell (mongosh)
MongoDB содержит консольное приложение для управление базой данных MongoDB Shell.
Для запуска MongoDB Shell внутри контейнера введите
docker exec -it mongodb mongosh
Пример использования:
test> show dbs
admin 40.00 KiB
config 12.00 KiB
local 40.00 KiB
test> use mydb
switched to db mydb
mydb> db.users.insertMany([
... { name: "Mike", age: 19, verified: true },
... { name: "Bob", age: 31, email: "bob@gmail.com" }
... ])
{
acknowledged: true,
insertedIds: {
'0': ObjectId('677a772ab01230826d567a2b'),
'1': ObjectId('677a772ab01230826d567a2c')
}
}
mydb> db.users.find()
[
{
_id: ObjectId('677a772ab01230826d567a2b'),
name: 'Mike',
age: 19,
verified: true
},
{
_id: ObjectId('677a772ab01230826d567a2c'),
name: 'Bob',
age: 31,
email: 'bob@gmail.com'
}
]
Пример на Python
Пример использования библиотеки pymongo (документация):
from pymongo import MongoClient
# Подключаемся к MongoDB (по умолчанию на localhost:27017)
client = MongoClient('debian-server', 27017)
# Создаем базу данных
db = client['mydatabase']
# Создаем коллекцию
collection = db['mycollection']
# Вставляем документ в коллекцию
document = {
'name': 'Alice',
'age': 30,
'city': 'New York'
}
collection.insert_one(document)
# Извлекаем документ из коллекции
result = collection.find_one({'name': 'Alice'})
# Выводим результат
print(result)
# Закрываем соединение
client.close()
Ввод программы:
{'_id': ObjectId('677a8e6b91551c7424c1c6c0'), 'name': 'Alice', 'age': 30, 'city': 'New York'}