# MongoDB

**MongoDB** (англ. humongous - улахан) - аha5ас төрүт кодтаах, таблица описаниетын көрдөөбөт дөкүмүөннэргэ хайысхаллаах дааннайдары салайааччы система (нуч. СУБД - система управления базами данных). NoSQL курдук классифицируйдаммыт, JSON-марыннатар дөкүмүөннэри уонна даннайдар салайааччы схематын туттар.

## **Лицензиялааhын уонна көмө**

MongoDB-ны Affero (AGPL) GNU барыларыгар ылыллар лицензиятынан төлөбүрэ суох ылыахха сөп. Программирование тылыгар аналлаах драйвердар Apache лицензиятын аннынан киирэллэр. Ити лицензияларга MongoDB inc. коммерческай лицензияны субэлиир MongoDB-га, ол лицензия бэйэтигэр эбии пуунсуйалардаах(холобур, SASL, LDAP, Kerberos, Simple Network Management Protocol кытта интеграциялаах уонна Розетта Лингвистика Platform Basis Technology тексты көрдөөhүнүгэр), салайааччы туттар-сэптэр, мониторинг, саппаас копиялааhын уонна техническай көмө.

## **Кыахтара**

### Ad hoc көрдөбүллэрэ

Көрдөбүллэрэ конкретнай дөкүмүөн буолаларын уонна пользовательскай JavaScript-пуунсуйаларын төнүннэриэн сөп. Регулярнай этиилэринэн көрдөөhүн баар. Көрдөбүллэргэ ал5ас түмүк төнүннэрэhин настройкалыахха сөп.

### **Индексация**

MongoDB иhигэр индексация5а өйөөһүн баар.

### **Репликация**

MongoDB реплика набордарын кытары улэлиэн сөп. Реплика набордара икки эбэтэр онно5ор элбэх даннай копиялардаах. Хас реплика наборун экземпляра хаhан ба5ары реплика сүрүн эбэтэр көмөлтө оруолугар кирсиэн сөп. Суруйуу уонна аа5ыы дьаhайыыны барыта сүрүн репликаны кытары оноhуллар. Көмө репликалар даннай копияларын актуальнай турукка өйөөһүннүүллэр. Сүрүн реплика сбой биэрдэ5инэ, реплика набора атын сүрүн репликаны талар. Көмө репликалар аа5ыы операцияларга төрүт буолахтарын сөп.

### **Нагрузка араараhына**

MongoDB сытыары масштабтанар, шардинг тутта. Туттааччы коллекция5а даннайдар хайдах туралларын быhаарар шардинг күлүүhүн талар. Даннайдар диапазоннарга арахсыахтара(шард күлүүттэн тутулуктаах) уонна шардтарга анардаhыахтара.

### **Файл тутар сирэ**

MongoDB нагрузка араараhыннаах уонна даннайдарга репликациялаах файл тутар сирэ буолуон сөп.
Ити Grid File System диэн аатаммыт пуунсуйа MongoDB драйвердарын кытары киирсэр. MongoDB разработчиктарга файллары уонна иьинээ5итин кытары үлэлиир пуунсуйалары сүбэлиир. GridFS пуунсуйа NGINX уонна lighttpd диэн плагиннарга туттуллар. GridFS файылы чаастарга арааран хас чааhы туспа дөкүмүөн курдук ууран тутар.

### **Агрегация**

MapReduce парадигматыгар тэҥнээх үлэлиэн сөп.

Фреймворк иhигэр агрегация5а GROUP BY SQL-инструкциятын аналога баар. Агрегация оператордара конвейерега баайыллыахтарын сөп UNIX-конвейердарын курдук. Эбии Фреймворк $lookup диэн оператордаах выгрузкатыгар уонна среднеквадратическай отклонение курдук статистическай операциялаардаах.

### **Сервер өттүгэр JavaScript толоруута**

JavaScript көрдөбүллэргэ уонна агрегация пуунсуйаларыгар(холобур MapReduce иhигэр) туттуллуон сөп уонна база5а ыытыллыан сөп.

### **Фиксированнай ыйааhыннах коллекциялар**

MongoDB фиксированнай ыйааhыннах коллекциялары өйөөһүннүүр. Оннук коллекциялар угааhын бэрээдэгин хааллараллар уонна бэриллибит ыйааhыҥҥа тиийдэхтэринэ бэйэлэрин кольцевой буфер курдук тутталлар.

### **Транзакциялар**

2018 сылга MongoDB 4.0 версиятыгар ACID транзакцията эбиллибитэ.

## **Архитектурата**

### Программирование тылын өйдөнөрө

MongoDB сүрүн программирование тылларыгар официальнай драйвердардаах. Эбии өссө элбэх официальнайа суох уонна сообществаннан өйөнөр драйвердардаах атын программирование тылларыгар уонна фреймворктарга.

### **Салайааhын уонна интерактивнай туттар-сэптэр**

Сүрүн интерфейс даннай базаларга «mongo» ха5ын таhа этэ. MongoDB 3.2 версиятыттан графическай ха5ын таhа «MongoDB Compass». Эбиитигэр администрируйдуурга, даннай көрөргө GUI-ны кытары туттар-сэптээх продукталар уонна туора проектар бааллар.