Знайомство з MongoDB

24 січня 2015 02:53 alex.xciv 1206 0

MongoDB позиціонує себе як передова NoSQL база даних. Це твердження засноване на статистичних даних, так що довести зворотне досить важко. Ми й не будемо.

MongoDB використовується зокрема в MEAN - "все в одному" JS фреймворку для розробки web-додатків. Перевага використання баз даних подібних до MongoDB полягає в тому, що вона надає можливість легкої роботи з даними у форматі JSON у будь-який частині вашої програми. Це значить, що ви можете передавати і зберігати дані у форматі JSON на на всіх рівнях: фронтенд (Angular), бекенд (Node) і, власне, база даних - MongoDB.
Відвідайте офіційний сайт проекту, щоб докладніше вивчити всі аспекти роботи з MongoDB. Зараз же ми встановимо його і проведемо невеликий тест-драйв.

Установка та запуск

Установка MongoDB проводиться в два простих кроки, які полягають в наступному:

  • запустити інсталятор;
  • вибрати директорію установки;

По виконанні цих простих дій ми зможемо повноцінно працювати з базою даних на локальній машині.
Наступні інструкції написані для користувачів Mac, так як для Windows та Linux існують зручні інсталятори.
Стандартна папка установки - /data/db/. У цій папці будуть зберігатися всі робочі файли, тому переконайтеся, що маєте необхідні права для запису в неї.
Установку на Mac можна зробити або вручну, або за допомогою homebrew-рішення, яке розроблене силами користувачів-ентузіастів. У цій статті ми вдамося до допомоги другого.

// оновлення пакетів
$ brew update
// install mongoDB
$ brew install mongodb

Якщо ви з якихось причин не хочете використовувати homebrew-інсталятор, то можете відвідати офіційний сайт, де ви знайдете всі необхідні інструкції.

Початок використання

Для того, щоб почати роботу необхідно виконати всього два пункти:

  • запустити процес
  • під'єднатись

Звучить просто, чи не так? Давайте спробуємо.

Старт служби MongoDB

Перед тим як почати щось зберігати в базі даних, необхідно під'єднати її до нашого проекту. Робиться це елементарною командою:

$ mongod

Якщо команда виконалась як слід, це означає, що Mongo почав працювати. Переконатися в цьому можна, побачивши "waiting for connections on port 27017" в консолі:

Під'єднання до служби MongoDB

Після того, як служба запущена, нам залишається тільки підключитися до неї за допомогою наступної команди:

$ mongo

Тепер ми можемо повноцінно працювати з нашою базою даних.

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

Загальні команди для роботи з базою даних

Список усіх команд

$ show dbs

Створення бази даних

Базу даних не буде створено, поки ви не додасте в неї хоча б одне значення. Трюк полягає в тому, що вам зовсім не треба створювати ніяких баз даних. При зверненні до неіснуючої, вона буде автоматично створена.
Створення документів і колекцій ми розглянемо в розділі "CRUD команди" цієї статті.

Показати поточну базу даних

$ db

Обрати базу даних

$ use db_name

СRUD команди

Створення

// один користувач
$ db.users.save({ name: 'Chris' });
// декілька користувачів
$ db.users.save({ name: 'Chris'}, { name: 'Holly' });

Зберігаючи документ в колекцію users, ви успішно створюєте і базу, і колекцію, якщо до цього вони не існували.

Зчитування

// показати всіх користувачів
$ db.users.find();
// знайти певного користувача
$ db.users.find({ name: 'Holly' });

Оновлення даних

db.users.update({ name: 'Holly' }, { name: 'Holly Lloyd' });

Видалення

// видалити все
db.users.remove({});
// видалити певного користувача
db.users.remove({ name: 'Holly' });

Ми коротко пробіглися по основним командам MongoDB. У документації ви знайдете вичерпну інформацію по всім командам. Також існує інтерактивне керівництво

Використання Node.js додатків

Як бачите працювати з MongoDB досить просто. Для того, щоб пов'язати її з Node.js існує бібліотека mongooseJS.
Все, що нам необхідно зробити - конфігурувати mongoose для роботи з базою даних. А так як у нас немає необхідності створювати бази даних, це елементарна справа єдине, в чому потрібно переконатися, - в тому, що служба MongoDB запущена коректно:

$ mongod

Також ми повинні вказати mongoose ім'я бази даних, з якою вона буде працювати (пам'ятаєте, що їй не обов'язково існувати на момент створення).
Ось невеликий приклад коду, який дозволить працювати з базою в Node:

// обираємо необхідні нам пакети
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/db_name');

От і все! Як тільки ми почнемо щось записувати в базу даних під назву db_name, вона буде автоматично створена. Більш докладно про всі особливості роботи Mongoose спільно з Node можете прочитати в статті "Using MongooseJS in Node.js and MongoDB Applications".

GUI-інструмент Robomongo

Незважаючи на те, що працювати з MongoDB через командний рядок дуже просто, є дещо, що остаточно спрощує цей процес - Robomongo.
Завантажити можна звідси
Для того, щоб під'єднатися до бази даних, необхідно створити нове підключення з довільним ім'ям, в якому буде вказано localhost в якості адреси, а в якості порту - 27017.
![Нове підключення]
Тепер у вас є вбудований засіб для контролю за вашою базою даних і відповідними колекціями, але ніхто не забороняє вам паралельно використовувати командний рядок.

Висновки

MongoDB - чудова NoSQL база даних, яка швидко налаштовується, підключається до Node.js і дозволяє в найкоротші терміни приступати до розробки вашого застосування.

Джерело перекладу

1206 8

Схожі матеріали:

Коментарі:

Авторизуйтесь, щоб залишити коментар.