Базы данных: MongoDB

MongoDBopen in new window — документная база данных. Данные хранятся в виде коллекций (аналог таблиц в реляционной БД) и документов (аналог строк таблицах в реляционной БД). Документы — JSON объекты.

Запуск

Запустить MongoDB проще всего через dockeropen in new window.

docker run -d --name mongodb \
    -p 27017:27017 \
    mongodb/mongodb-community-server:latest
1
2
3

MongoDB Shell (mongosh)

MongoDB содержит консольное приложение для управление базой данных MongoDB Shellopen in new window.

Для запуска MongoDB Shell внутри контейнера введите

docker exec -it mongodb mongosh
1

Пример использования:

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'
  }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

Пример на Python

Пример использования библиотеки pymongoopen in new window (документацияopen in new window):

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()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

Ввод программы:

{'_id': ObjectId('677a8e6b91551c7424c1c6c0'), 'name': 'Alice', 'age': 30, 'city': 'New York'}
1

Ссылки

Последниее изменение: 05.01.2025, 15:20:36