Prvu verziju MongoDB-a izdala je u veljači 2007 10 gen Softverska tvrtka, kasnije 2013., 10gen je promijenila naziv tvrtke u MongoDB Inc.
MongoDB je NoSQL baza podataka koja se koristi za pohranu podataka u obrascu JSON dokumenata jer se zbog ove značajke golema količina nestrukturiranih podataka može lako pohraniti i upravljati njima u MongoDB-u. Skup ovih dokumenata koji sadrže podatke poznat je kao zbirke. A te su zbirke slične tablicama koje se koriste u relacijskim bazama podataka za pohranu podataka.
Mnogo je razloga zašto je MongoDB toliko popularan u usporedbi s drugim relacijskim i NoSQL bazama podataka, neki od njih su:
- Programeri mogu definirati strukturu prema parovima ključ-vrijednost
- Poput relacijskih baza podataka, za podatke nisu potrebni redovi i stupci
- Hijerarhijska struktura MongoDB-a omogućuje pohranu podataka u obliku nizova, a također može pohraniti složene podatke
- Programerima omogućuje jednostavno upravljanje bazama podataka budući da podržava više programskih jezika
- Također podržava značajke gridFS-a i replikacije
Zbog njegove popularnosti, postoji mnogo prilika za posao za programere koji rade s MongoDB-om. Ovaj se članak odnosi na pitanja koja su najvažnija i koja često postavljaju mnoge najbolje ocijenjene organizacije.
MongoDB pitanja za intervju
Najčešća pitanja podijeljena su u tri razine: Osnovna razina, Srednja razina i Stručna razina.
Osnovna razina
Ova pitanja se odnose na osnovne pojmove i terminologiju MongoDB-a, a na intervjuu se očekuje da svaki kandidat odgovori na ova pitanja.
Pitanje 1: Što znate o NoSQL bazama podataka i njihovim vrstama?
NoSQL baze podataka one su baze podataka koje ne pohranjuju podatke u tablice kao što to čine SQL baze podataka, već pohranjuju podatke u drugim oblicima kao što su dokumenti i oblici ključ-vrijednost.
Postoje četiri važne vrste NoSQL baza podataka:
- Baze dokumenata: Ove baze podataka pohranjuju podatke u obliku JSON dokumenata, ti se dokumenti kombiniraju u zbirke, a te se zbirke kombiniraju u bazu podataka.
- Baze podataka ključ-vrijednost: Ove baze podataka pohranjuju podatke u obliku ključeva i vrijednosti, na primjer, 'Ime = Ivan', u ovom primjeru 'Ime' je ključ, a 'Ivan' je vrijednost.
- Prodavaonica širokih stupova: Ove baze podataka pohranjuju podatke u obliku dinamičkih tablica, za razliku od relacijskih baza podataka, te tablice nisu strukturirane.
- Graf baze podataka: Ove baze podataka sadrže rubove i čvorove; čvorovi se koriste za pohranu informacija, dok se rubovi koriste za prikaz odnosa među čvorovima.
Pitanje 2: koja je vrsta NoSQL baze podataka MongoDB?
MongoDB baza podataka spada u dokumentne baze podataka, što znači da pohranjuje podatke prema JSON dokumentima. Ne slijedi nikakvu shemu i dopušta umetanje bilo koje vrste podataka u nju.
Pitanje 3: Koja je bolja od MongoDB i SQL baza podataka?
MongoDB je bolji od SQL baza podataka na takav način da može rukovati nestrukturiranim podacima, dok SQL baze podataka rukuju samo strukturiranim podacima i pohranjuju ih bez ikakvih ograničenja za razliku od relacijskih baza podataka. Zbog svoje značajke bez sheme, upitima se u MongoDB-u rukuje brže u usporedbi sa SQL bazama podataka budući da podaci nisu smješteni u obliku tablica, a umjesto toga u nizu tablica podaci su smješteni na isto mjesto pa su jednostavan za upit za pristup podacima, a MongoDB dopušta da se njegovi podaci mapiraju u drugim programskim jezicima što korisnicima olakšava rad na njima.
Pitanje 4: Što je dokument i zbirka u MongoDB-u?
Podaci se pohranjuju u MongoDB u obliku dokumenata, zatim se ti dokumenti kombiniraju u zbirku, a niz zbirki se kombinira u bazu podataka. Da biste ovo razumjeli, razmotrite primjer baze podataka o školama, baza podataka o školama sadrži zbirke koje u sebi sadrže podatke o razredima, a nadalje, ti dokumenti (podaci o razredima) sadrže podatke učenika (podaci o učenicima) u obliku dokumenata.
Pitanje 5: Što su MongoDB tipovi podataka?
Postoje mnoge vrste podataka koje MongoDB podržava:
Niz | Vrsta podataka String pohranjuje podatke u obliku slova/znakova i mora biti od 8 bajtova i pripadati UTF-8, npr. Jone. |
---|---|
Cijeli broj | Pohranjuje brojeve do 64 bita, ali veličina može varirati ovisno o poslužitelju, na primjer, 1,54. |
Booleov | Ovo se koristi za pohranjivanje Booleovih vrijednosti koje mogu biti 0 ili 1, na primjer, Ivan je u razredu? Njegov odgovor je ili da ili ne. |
Dvostruko | Ovo pohranjuje pokretne brojeve poput 22,8. |
Min/Max tipke | Koristi se za usporedbu minimalnih i maksimalnih vrijednosti. |
Nizovi | Ovo se koristi za pohranjivanje nizova ili više vrijednosti u jednom ključu. |
Vremenska oznaka | Kada se bilo koji dokument mijenja, može voditi evidenciju izmjena. |
Objekt | Ovo pohranjuje ugrađene dokumente |
Null | Pohranjuje nulte vrijednosti. |
Simbol | Ovo je vrsta niza i može pohraniti one jezike koji su povezani sa simbolima |
Datum | Trenutno vrijeme i datum mogu se pohraniti u ove vrste podataka |
ID objekta | Dokumenti imaju jedinstvene ID-ove, ti ID-ovi mogu biti pohranjeni u ovoj vrsti podataka |
Binarni podaci | U njemu se pohranjuju binarni podaci koji su također poznati kao strojni jezik. |
Kodirati | Javascript kodovi pohranjuju se u dokumente uz pomoć ove vrste podataka |
Uobičajeni izraz | Bilo koji izraz može biti pohranjen u ovom tipu podataka |
Pitanje 6: Koje su alternative MongoDB-u?
MongoDB je vrsta NoSQL baze podataka, uz pomoć koje se veliki distribuirani podaci pohranjuju u BSON dokumente. Alternative za MongoDB mogu biti Amazon DynamoDB, Microsoft Azure Cosmos DB, Couchbase, PostgreSQL, Redis i Cassandra.
Srednja razina
Ta se pitanja više odnose na napredne koncepte nego na osnove i na intervjuu se očekuje da prosječan kandidat odgovori na ova pitanja.
Pitanje 7: Kako možemo usporediti MongoDB i SQL na visokoj razini?
SQL baze podataka su relacijske baze podataka koje pohranjuju podatke na dobro strukturiran i organiziran način u obliku redaka i stupaca koji čine tablice, s druge strane, MongoDB baze podataka su NoSQL baze podataka, koje pohranjuju podatke u dokumente, ti dokumenti su zajedno poznate kao zbirke, a te se zbirke kombiniraju u bazu podataka.
Pitanje 8: Postoje li funkcionalnosti poput ACID upravljanja transakcijama i zaključavanja u MongoDB-u?
Ne, prema zadanim postavkama MongoDB ne pruža nikakvu ACID transakciju na više dokumenata, međutim, može pružiti podršku za ACID transakcije na jednom dokumentu.
Pitanje 9: Što je indeksiranje u MongoDB-u?
U MongoDB-u, indeks je posebna struktura podataka koja zauzima neka polja baze podataka i sadrži neke podatke za izradu indeksa. Indeksom se poboljšava mogućnost pretraživanja baze podataka, umjesto traženja određene stvari iz gomile dokumenata, korisnik može izravno otići do navedenog dokumenta uz pomoć indeksiranja.
Studentska iskaznica = 1
Ime studenta = 'Pavao'
Zemlja = 'Ujedinjene države'
}
U gornjem primjeru, 'Student_id =1' je indeks, tako da ako bilo tko pretražuje prema Student_id ili 1, otvorit će se sljedeći dokument.
Pitanje 10: U MongoDB-u, može li se stvoriti indeks na polju polja?
Da, možemo stvoriti indeks na polju niza u MongoDB-u, a on indeksira svaku vrijednost niza. Zapravo, MongoDB sam stvara indeks s više ključeva i ne morate ga specificirati ako je bilo koje polje indeksa polje.
Pitanje 11: Je li moguće pokrenuti više Javascript operacija u jednoj MongoDB instanci?
Moguće je pokrenuti više Javascript operacija u jednoj mongod instanci jer je u verziji 2.4 MongoDB V8 dodan javascript mehanizam.
Pitanje 12: Što je vođenje dnevnika u MongoDB-u?
Kada je vođenje dnevnika omogućeno u MongoDB-u, stvara se poddirektorij Journal, unutar direktorija /podaci/db , što je staza koju definira dbPath, prema zadanim postavkama. Dok je vođenje dnevnika pokrenuto, MongoDB uređuje i pohranjuje podatke u memoriju i na disk, prije nego što se promjene podataka prenesu na disk. Od velike je pomoći u slučaju da se dogodi bilo kakva pogreška zbog koje promjene podataka nisu spremljene, MongoDB može dohvatiti promjene iz datoteke dnevnika i može osigurati trajnost datoteka.
Stručna razina
Ova su pitanja povezana s naprednijim konceptima MongoDB-a, očekuje se da bi stručni kandidat trebao odgovoriti na ta pitanja.
Pitanje 13: Što je MongoDB proces dijeljenja?
U MongoDB-u, dijeljenje je proces distribucije podataka ogromne baze podataka među mnogim MongoDB poslužiteljima. Stoga je lako rukovati podacima i također može odgovoriti na upite velikom brzinom. MongoDB podržava horizontalno skaliranje kroz dijeljenje.
MongoDB klaster se sastoji od tri dijela koji su krhotine ; poznata je i kao replika i dostupna je na svakom poslužitelju, mango ; djeluju kao tumač između poslužitelja i sharda, i konfiguracijski poslužitelji ; oni pohranjuju konfiguracijske postavke klastera i metapodatke.
Pitanje 14: Što je scale-out i kako se događa u MongoDB-u?
Kada postoji mnogo podataka na jednom čvoru, višestruki čvorovi približavaju se učitanom čvoru kako bi rasporedili njegovo opterećenje. Ovaj proces dijeljenja opterećenja jednog čvora na različite čvorove naziva se skaliranje, a također je poznato i kao horizontalno skaliranje.
Pitanje 15: Kako možemo dobiti informacije o planovima upita koristeći MongoDB jezik upita?
The objasniti() koristi se naredba i podržava načine rada koji su “allPlansExecution, executionStats i queryPlanner”. Na primjer:
{ 'kuhinja' : 1 , 'općina' : 'Brooklyn' }
) ;
U gornjem primjeru, podaci o restoranu se dohvaćaju iz naredbe expand().
Pitanje 16: Objasnite MongoDB agregacijski okvir.
U MongoDB-u, dohvaćanje podataka iz različitih zbirki i nakon izračuna vraćanje kombiniranog rezultata poznatog kao agregacija. Ima tri koraka, prvo će uzeti unos i filtrirati dokumente koje trebamo iz dokumenata pomoću $match(), zatim obavljamo posao agregacije na filtriranim informacijama pomoću $group(), i na kraju sortiramo naše rezultate koristeći $sort().
Pitanje 17: Je li moguće zaključati više od jedne baze podataka koristeći MongoDB operaciju?
Da, MongoDB može zaključati više od jedne baze podataka, za trenutačno zaključavanje više baza podataka koristimo operaciju MongoDB db.copyDatabase() , dok operacija, db.repairDatabase() primijenite globalnu blokadu na uređivanje baze podataka i također ograničite druge operacije koje treba provesti dok se ne ukloni.
Pitanje 18: Što je GridFS u MongoDB-u?
Velikim datotekama koje prelaze 16 MB poput slika, video datoteka i audio datoteka upravlja se u MongoDB-u pomoću GridFS-a i pohranjuju se u dijelovima i komadima datoteke umjesto u jednom dokumentu, prema zadanim postavkama MongoDB podržava samo dva formata koji su fs. datoteke i fs.chunks za pohranjivanje dijelova i metapodataka datoteka.
Pitanje 19: Kako možete opisati fenomen replikacije u MongoDB-u?
Replikacija je proces sinkronizacije podataka između više poslužitelja, dok MongoDB kopira podatke i replicira ih na različite poslužitelje, tako da se u slučaju pada poslužitelja podaci mogu dohvatiti s bilo kojeg drugog poslužitelja što osigurava sigurnost podataka.
Pitanje 20: Što je Mongo Shell?
Mongo shell je JavaScript platforma, preko koje možemo komunicirati s MongoDB-om i također možemo napraviti izmjene u podacima pomoću upita. Također se koristi u administrativne svrhe kao što je održavanje instanci baze podataka. Prema zadanim postavkama, mongo shell je uključen u instalacijsku datoteku, ali ako nije instaliran, možete ga instalirati s MongoDB poslužitelja.
Zaključak
MongoDB je popularna NoSQL baza podataka koja se koristi za upravljanje podacima u obliku dokumenata i vrlo je jednostavna za rukovanje jer je bez sheme. Koriste ga mnoge poznate tvrtke poput Twittera i Facebooka. Zbog njegove popularnosti, postoje brojne mogućnosti zapošljavanja za programere koji rade u MongoDB sučelju. U ovom članku podijeljena su najčešće postavljana pitanja za MongoDB intervju s odgovarajućim odgovorima.