Базы данных: 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
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
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
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
Ссылки
- MongoDB: Все, что нужно знать за 30 минутopen in new window
- MongoPlayground.netopen in new window
- Развенчиваем мифы о MongoDB. Павел Перекаловopen in new window
- Петр Зайцев — MySQL и MongoDB - когда что лучше использовать?open in new window
- Остаться в живых. Крупный проект на одной NoSQL / Айк Саргсян (Юла)open in new window