Uvod
MongoDB je dobio ime od reči humongous, što znači veliko, enormno, jer je vilj Mongo baze bila obrada velikom broja podataka. Predstavlja open-source sistem za upravljanje bazama podakata zasnovan na dokumentima. Klasifikuje se kao NoSQL baza podataka koja izbegava tradicionalnu strukturu relacionih baza orijentisanu ka tabelama. Osnovnu strukturu čine dokumenti koji su veoma slični JSON formatu. To su JSON dokumenti sa dinamičkim šemema, ili kako pojedini nazivaju BSON format(binary JSON). MongoDB kao open-source projekat je objavljen pod GNU Affero General Public licencom i pod Apache licencom. U julu 2015. godineMongoDB je bio četvrti najčešće pominjani „database engine”, a od tada je popularnost samo rasla.
Sam razvoj MongoDB je tekao od 2007. pod okriljem kompanije 10gen, koja je 2009. izbacila svoj projekat kao open-source, a tek 2013. kompanija je promenila naziv u MongoDB. MongoDB podržava kriterijumske upite, polja, pretragu putem regularnih izraza itd. Sami upiti mogu da koriste i JavaScript funkcije koje su korisnički definisane. Radi lakše pretrage svako polje u nekom MongoDB dokumentu može biti indeksirano.
MongoDB pruža velike mogućnosti za replikaciju podataka. Set podataka za replikaciju se sastoji od dve ili više kopija istih podataka. Svaka kopija može imati ulogu primarnog ili sekundarnog seta podataka u bilo kom trenutku. Sva čitanja i pisanja se izvršavaju nad primarnom kopijom po default-u. Kada se dogodi da primarna kopija padne, odmah će se od ostalih setova podataka odabrati jedan koji će zameniti primarni.
MongoDB se može koristiti kao fajl sistem. Postoji ugrđena funkcija u MongoDB koja se zove Grid File System. Umesto da se podaci čuvaju u jednom dokumentu, GridFS deli fajlove u delove i svaki od tih delova čuva u posebnom dokumentu. Još jedna pogodna stvar pri korišćenju MongoDB jeste takozvani Aggregation framework. On omoguća MapReduce, dodeljuje ključ vrednost dokumetima kako bi se lakše izvršilo pretraživanje. Na taj način je kasnije moguće izvršiti GROUP BY klauzulu iz SQL-a. Dalje se može koristiti $lookup operator kojim se može spojiti više različitih dokumenata.
MongoDB zajednica je dobro razvijena, pa se lako može naći podrška na vebu. U prilog ovom ide i činjenica da se od 2014. godine održava višednevna konferencija MongoDB world jednom godišnje, gde dolaze eksperti iz ove oblasti i kompanije da se okupe i razmene ideje, kao i da i diskutuju o trendovima na ovu temu. MongoDB sistemu može se pristupiti iz većine programskih jezika. Postoji veliki broj oficijalnih drajvera i biblioteka kojima se može manipulisati i pristupiti MongoDB sistemu. Kao primer navodimo drajver za PHP, koji ćemo kasnije koristiti. Većina stvari vezana za MongoDB će se kucati iz komandne linije jer postoji Mongo shell za ovu svrhu. MongoDB ne omogućava GUI za krajnje korisnike, ali ipak postoje neka rešenja preko kojih je omogućen GUI, ali samo za vizuelizaciju podataka i administraciju. Jedna od kritika MongoDB je usmerena na limitirajuće sposobnosti kada se MongDB koristi na 32-bitnim sistemima. MongoDB preporučuje 64-bitne sisteme, ali i da korisnici obezbede dovoljno RAM memorije kako bi sve funkcionisalo kako treba.