MongoDB

MongoDB - быстрый старт. И также расмотрим пару нюансов и мелочей. Это не руководтсво для начинающих, а больше пару начальных моментов и тонкостей. Сначала давайте внесе чуток инфы о самой MongoDB.

MongoDB - быстрый старт. И также расмотрим пару нюансов и мелочей. Это не руководтсво для начинающих, а больше пару начальных моментов и тонкостей.

MongoDB (от англ. humongous — огромный) — документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Написана на языке C++.

СУБД управляет наборами JSON-подобных документов, хранимых в двоичном виде в формате BSON. Хранение и поиск файлов в MongoDB происходит благодаря вызовам протокола GridFS. Подобно другим документо-ориентированным СУБД (CouchDB и др.), MongoDB не является реляционной СУБД. В СУБД:

  • Нет такого понятия, как «транзакция». Атомарность гарантируется только на уровне целого документа, то есть частичного обновления документа произойти не может.
  • Отсутствует понятие «изоляции». Любые данные, которые считываются одним клиентом, могут параллельно изменяться другим клиентом.

В MongoDB реализована асинхронная репликация в конфигурации «ведущий — ведомый» (англ. master — slave), основанная на передаче журнала изменений с ведущего узла на ведомые. Поддерживается автоматическое восстановление в случае выхода из строя ведущего узла. Серверы с запущенным процессом mongod должны образовать кворум, чтобы произошло автоматическое определение нового ведущего узла. Таким образом, если не используется специальный процесс-арбитр (процесс mongod, только участвующий в установке кворума, но не хранящий никаких данных), количество запущенных реплик должно быть нечётным.

Инфы очень много. Поиск в нете сразу даст Вам результат на все Ваши вопроссы. Для себя я бы виделил пару моментов:

1) JSON а именно BSON как структура хранения данных

2) для работы с файлами использовать GridFs

3) кластерное хранилище

И так давайте разделим весь процес на 2 эатап: 

1) установка mongoDB

2) простенький проэкт с CRUD операциями

Для установки необходимо скачать утановочный файл и по дефолту все установить. С этим проблем не может быть. Достаточно следовать установкам по умолчанию и в результате Вы получаете установленную mongoDB. Самое главное как все это запустить. В папке с установленой mongoDB переходите в папку bin и:

1) запускаете mongod.exe

2) запускаете mongo.exe

И все готово для использования. Поддерживатеся консолька, очень удобная. Там есть автокомплиты и очень просто выполнять простые запросы на CRUD операции. Приводить примеры нет смылса, инфы очень много и все понятно интуитивно.

Второй вопросс это создание проэкта на Java. Для быстрого создания будем использовать Maven. И так создали проэкт со следующими зависимостями:

 

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
	<groupId>org.mongodb</groupId>
	<artifactId>mongo-java-driver</artifactId>
	<version>3.2.0</version>
</dependency>
<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.17</version>
</dependency>

Все уже готово для работы. Так начинаем разбор всех операций

MongoClient client = new MongoClient();
MongoDatabase db = client.getDatabase("test");

Подключились и получили БД для использования "test"

MongoCollection<Document> person = db.getCollection("persons");

Получили коллекцию для использования.

Давайте создадим документ для работы(аналог экземпляра Entity)

Document p = new Document();
p.append("_id", 11);
p.append("name", "Petya");			

И давайте расмотрим какие операции мы можем использовать

person.insertOne(p);//вставка
person.deleteOne(p);//удаление
person.updateOne(p1,p2);//обновить

и так много всего. Если Вам интересны другие операции глядите на 

https://github.com/Man4ester/mongoDB/tree/master/MongoDBUtils

Там буду комитить примеры и есть желание написать пару утилит для работы.

С всего сказано хочу обратить вниминие на:

1) если Вы вызвете не сущуствующую БД она СОЗДАТСЯ

2) если Вы вызвете не существующую коллекцию она СОЗДАТСЯ

3) для имени коллекций пользуйте переменные, НЕ ПОЛЬЗУЙТЕСЬ харколом как  примере, это создаст хоас, ведь ошибка в имени коллекции и у Вас уже 2 коллекции.

Там еще очень интересно работать со сложными запросами, постараюсь на гите это выложить. Также советую почитать о индексации, там есть нюансы.

И в заключение, тема очень интерессная и заслуживает на Ваше внимание. С этого топика Вы можете установить mongoDB и создать проэкт на Java а дальше ..... только Вы и Ваше воображение.

comments powered by Disqus

Интересное

Стив Джобс о Mac OS X:
«Я убежден в том, что половина того что отделяет успешных предпринимателей от неудачников — это настойчивость.».
Марк Эллиот Цукерберг:
«Люди всегда немного скептически относятся к чему-то быстрорастущему, но им нужно просто взглянуть на то, что делается.».
Марк Эллиот Цукерберг:
"Множество конфиденциальных вещей намного проще держать в централизованной системе."
Стив Джобс о операционной системе Google Android:
Мы не лезем в поиск, но они решили заняться телефонами. Не надо заблуждаться, они хотят уничтожить iPhone. Мы им не позволим.
Стив Джобс о Mac OS X:
«Мы сделали значки на экране такими красивыми, что вам захочется их лизнуть».


Курсы валют

bank-ua.com bank-ua.com bank-ua.com

Стоит взглянуть