MongoDB
Крім хорошого розуміння реляційних баз даних (наприклад, MySQL або PostgreSQL), розробник повинен знати про NoSQL (зазвичай розшифровується як "non SQL", "non relational" чи "не тільки SQL") бази даних, такі як Cassandra, MongoDB, Redis тощо.
Ми зупинимось на MongoDB — дуже популярна Open Source система керування базами даних, в якій дані зберігаються як колекції (групи) документів. Документи представлені в людино-зрозумілому формат JSON (JavaScript Object Notation).
Примітка! Для зберігання документів "поза сценою" (внутрішні механізми) MongoDB використовує формат Binary JSON (BJON).
Розглянемо типовий запис з MongoDB колекції
{
"_id" : ObjectId("59906c1b728a58253969ffc2"),
"acts" : [
"організатор Хмельниччини",
"засновник держави Війська Запорозького"
],
"birthYear" : 1595,
"name" : "Богдан",
"surname" : "Хмельницький"
}
Фігурні дужки {...}
позначають об'єкт, який містить ключі і значення, а квадратні дужки [...]
— лінійний масив. Значення полів можуть бути вкладеними і їх глибина не обмежена.
Системне поле _id
генерується автоматично, є унікальним і має тип ObjectId
. Об'єкт ObjectId
займає 12 байтів і складається з
- часової мітки,
- ідентифікатора клієнтської машини,
- ідентифікатора клієнтського процесу,
- лічильника, який збільшується.
В MongoDB різні документи однієї і тієї ж колекції можуть мати різні поля і типи — не має однієї схеми для всіх:
{
"_id" : ObjectId("59906c79728a58253969ffc3"),
"name" : "Іван",
"surname" : "Виговський",
"birthYear" : 1608
}
{
"_id" : ObjectId("59906c1b728a58253969ffc2"),
"acts" : [
"організатор Хмельниччини",
"засновник держави Війська Запорозького"
],
"birthYear" : 1595,
"name" : "Богдан",
"surname" : "Хмельницький"
}
Зверніть увагу на поле acts
, якого нема в першому документі.