WOX.IN.UA - форум web розробників

Вітаємо на нашому форумі! Тут ви зможете обговорювати останні тенденції технологій, вирішувати завдання та обмінюватися досвідом з іншими розробниками.

WOX — це місце, де кожен може знайти щось корисне, навчитися новому та знайти відповіді на свої питання!

Стаття MongoDB що це, як з ним працювати

  • Автор теми LITVINOV
  • Дата створення
  • Автор теми
  • Адміністратор
  • Модератор
  • #1
MongoDB – це потужна система управління базами даних, яка використовує документ-орієнтовану модель даних. У порівнянні з традиційними реляційними базами даних, такими як MySQL або PostgreSQL, MongoDB пропонує більш гнучкий підхід до зберігання та опрацювання даних.
Однією з ключових особливостей MongoDB є використання BSON (Binary JSON) для представлення та обміну даними. Документи у MongoDB схожі на JSON-об'єкти і можуть містити вкладені структури, масиви та інші складові.

Основні поняття MongoDB​

  1. Колекції (Collections): У MongoDB дані організовані у колекції, які можна уявити як еквіваленти таблиць у реляційних базах даних. Кожна колекція містить документи.
  2. Документи (Documents): Основною одиницею зберігання в MongoDB є документ. Документ – це BSON-об'єкт, що містить пари "ключ-значення".
  3. Поля (Fields): Кожен документ містить різні поля, які визначають дані. Поля можуть бути різного типу, такого як рядки, числа, масиви, дати тощо.

Приклади коду​

Підключення до бази даних​

Код:
from pymongo import MongoClient

# Встановлення з'єднання з сервером MongoDB
client = MongoClient('mongodb://localhost:27017/')

# Вибір бази даних
db = client['mydatabase']

Вставка документа​

Код:
# Вибір колекції
collection = db['mycollection']

# Створення документа
post = {"title": "MongoDB і його можливості", "content": "Це приклад тексту."}

# Вставка документа в колекцію
post_id = collection.insert_one(post).inserted_id[/CODE
[HEADING=3]Запит до бази даних[/HEADING]
[CODE]
# Знайти всі документи, де заголовок містить слово "MongoDB"
result = collection.find({"title": {"$regex": "MongoDB"}})

# Вивести результат
for doc in result:
 print(doc)
[/CODE

[HEADING=2]Запити та Фільтрація[/HEADING]
MongoDB дозволяє використовувати різноманітні запити для вибору даних. Наприклад, ви можете використовувати фільтри для отримання документів, що відповідають певним умовам.
[CODE]
# Знайти всі документи, де рік більше 2020
result = collection.find({"year": {"$gt": 2020}})

Оновлення та Видалення​

Оновлення та видалення документів також є важливою частиною роботи з MongoDB.
Код:
# Оновити документ з певним заголовком
collection.update_one({"title": "Старий заголовок"}, {"$set": {"title": "Новий заголовок"}})

# Видалити документ з певним заголовком
collection.delete_one({"title": "Непотрібний документ"})

Індексація​

Щоб поліпшити продуктивність запитів, можна використовувати індексацію. MongoDB дозволяє створювати індекси для певних полів, що полегшує пошук та зменшує час виконання запитів.
Код:
# Створення індекса для поля "title"
collection.create_index([("title", 1)])

Агрегації​

MongoDB підтримує агрегаційні функції, які дозволяють вам виконувати складні операції обробки даних безпосередньо в базі даних.
Код:
# Знайти середнє значення для поля "likes"
average_likes = collection.aggregate([
{"$group": {"_id": None, "avg_likes": {"$avg": "$likes"}}}
]).next()["avg_likes"]

Реплікація та Шардування​

MongoDB надає механізми для забезпечення високої доступності та масштабованості. Реплікація дозволяє створювати копії бази даних на різних серверах, забезпечуючи надійність та відновлення даних в разі відмови.
Код:
# Налаштування реплікації
replica_config = {
"_id": "myreplica",
 "members": [
{"_id": 0, "host": "server1:27017"},
{"_id": 1, "host": "server2:27017"},
{"_id": 2, "host": "server3:27017"}
    ]
}

# Запуск реплікації
db.command("replSetInitiate", replica_config)
Шардування дозволяє розподілити навантаження між різними серверами для покращення продуктивності та обробки великих обсягів даних.

Підключення з Додатками​

Використання MongoDB в додатках може бути легкою завдяки різноманітним бібліотекам та драйверам для різних мов програмування. Наприклад, PyMongo для Python дозволяє легко взаємодіяти з базою даних.
Код:
# Встановлення PyMongo
pip install pymongo
pythonCopy code
# Підключення та взаємодія з MongoDB за допомогою PyMongo
from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')
db = client['mydatabase']
collection = db['mycollection']

Захист Даних​

MongoDB пропонує засоби безпеки, такі як автентифікація та авторизація, щоб забезпечити захист вашої бази даних від несанкціонованого доступу.
Код:
# Налаштування автентифікації
db.command("createUser", "myuser", pwd="mypassword", roles=["readWrite"])

Ці приклади створюють базовий огляд того, як працювати з MongoDB та використовувати його функціональні можливості у різних аспектах вашого проекту. Завдяки гнучкості та потужності MongoDB, ви можете легко адаптувати його до ваших потреб та вимог.
 
Зверху Знизу