Što je MongoDB? Architekstura, značajke i primjer

⚡ Pametni sažetak

MongoDB je NoSQL baza podataka orijentirana na dokumente koja se koristi za pohranu velikih količina podataka, koristeći kolekcije i dokumente umjesto tablica i redaka. Ovaj resurs objašnjava MongoDB značajke, primjer dokumenta, ključne komponente arhitekture, razlozi za korištenje, modeliranje podataka i kako se razlikuje od relacijske baze podataka.

  • 📄 Model dokumenta: Podaci se pohranjuju kao dokumenti ključ-vrijednost unutar kolekcija, a ne tablica.
  • 🧩 Fleksibilna shema: Polja se kreiraju u hodu bez unaprijed definirane strukture.
  • 🏗️ Ključne komponente: _id, kolekcija, dokument, polje, kursor, baza podataka i JSON.
  • Zašto ga koristiti: Ad hoc upiti, indeksiranje, replikacija i sharding za skaliranje.
  • 🔄 U usporedbi s RDBMS-om: Kolekcije zamjenjuju tablice, a ugrađeni dokumenti zamjenjuju spojeve.

Što je MongoDB

Što je MongoDB?

MongoDB je dokumentno orijentirana NoSQL baza podataka koja se koristi za pohranu velikih količina podataka. Umjesto korištenja tablica i redaka kao u tradicionalnim relacijskim bazama podataka, MongoDB koristi zbirke i dokumente. Dokumenti se sastoje od parova ključ-vrijednost koji su osnovna jedinica podataka u MongoDBKolekcije sadrže skupove dokumenata i funkcija, što je ekvivalent tablicama relacijskih baza podataka. MongoDB je baza podataka koja se pojavila sredinom 2000-ih.

MongoDB Značajke

  1. Svaka baza podataka sadrži kolekcije koje pak sadrže dokumente. Svaki dokument može biti drugačiji, s različitim brojem polja. Veličina i sadržaj svakog dokumenta mogu se međusobno razlikovati.
  2. Struktura dokumenta više je u skladu s načinom na koji programeri konstruiraju svoje klase i objekte u svojim odgovarajućim programskim jezicima. Programeri će često reći da njihove klase nisu redovi i stupci, već imaju jasnu strukturu s parovima ključ-vrijednost.
  3. Redovi (ili dokumenti kako se pozivaju u MongoDB) ne moraju imati unaprijed definiranu shemu. Umjesto toga, polja se mogu kreirati u hodu.
  4. Model podataka dostupan unutar MongoDB omogućuje vam predstavljanje hijerarhijskih odnosa, pohranjivanje nizova i lakše pohranjivanje drugih složenijih struktura.
  5. skalabilnost - MongoDB okruženja su vrlo skalabilna. Tvrtke diljem svijeta imaju definirane klastere, a neke od njih imaju više od 100 čvorova s ​​​​oko milijunima dokumenata unutar baze podataka.

MongoDB Primjer

Primjer u nastavku pokazuje kako se dokument može modelirati MongoDB.

  1. Polje _id dodaje MongoDB za jedinstvenu identifikaciju dokumenta u zbirci.
  2. Ono što možete primijetiti jest da su podaci o narudžbi (ID narudžbe, proizvod i količina), koji se u RDBMS-u obično pohranjuju u zasebnoj tablici, zapravo pohranjeni kao ugrađeni dokument u samoj kolekciji u MongoDBOvo je jedna od ključnih razlika u načinu na koji se podaci modeliraju u MongoDB.

MongoDB Primjer

Ključne komponente MongoDB Architektura

Ispod je nekoliko uobičajenih izraza koji se koriste u MongoDB:

  1. _iskaznica – Ovo je polje obavezno u svakom MongoDB dokument. Polje _id predstavlja jedinstvenu vrijednost u MongoDB dokument. Polje _id je kao primarni ključ dokumenta. Ako izradite novi dokument bez polja _id, MongoDB automatski će kreirati polje. Na primjer, ako vidimo primjer gornje tablice kupaca, MongoDB svakom dokumentu u kolekciji dodat će se 24-znamenkasti jedinstveni identifikator.
_Iskaznica ID kupca Ime kupca ID narudžbe
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Kolekcija – Ovo je grupaping of MongoDB dokumenti. Kolekcija je ekvivalent tablice koja se stvara u bilo kojem drugom RDBMS-u kao što je Oracle ili MS SQL. Kolekcija postoji unutar jedne baze podataka. Kao što se vidi iz uvoda, kolekcije ne nameću nikakvu strukturu.
  2. Pokazivač – Ovo je pokazivač na skup rezultata upita. Klijenti mogu iterirati kroz pokazivač kako bi dohvatili rezultate.
  3. Baza podataka – Ovo je spremnik za kolekcije, kao u RDBMS-u gdje je spremnik za tablice. Svaka baza podataka dobiva vlastiti skup datoteka na datotečnom sustavu. A MongoDB poslužitelj može pohraniti više baza podataka.
  4. dokument – Zapis u a MongoDB Kolekcija se u osnovi naziva dokumentom. Dokument će se pak sastojati od naziva polja i vrijednosti.
  5. Polje – Par naziv-vrijednost u dokumentu. Dokument ima nula ili više polja. Polja su analogna stupcima u relacijskim bazama podataka. Sljedeći dijagram prikazuje primjer Polja s parovima ključ-vrijednost. Dakle, u primjeru ispod, CustomerID i 11 su jedan od parova ključ-vrijednost definiranih u dokumentu.

Ključne komponente MongoDB Architektura

  1. JSON – Ovo je poznato kao JavaScript Notacija objekta. Ovo je čitljiv format običnog teksta za izražavanje strukturiranih podataka. JSON je trenutno podržan u mnogim programskim jezicima.

Samo kratka napomena o ključnoj razlici između polja _id i normalnog polja za prikupljanje. Polje _id koristi se za jedinstvenu identifikaciju dokumenata u zbirci i automatski ga dodaje MongoDB kada je zbirka stvorena.

Zašto koristiti MongoDB?

U nastavku donosimo nekoliko razloga zašto biste trebali početi koristiti MongoDB:

  1. Orijentiran na dokumente - Od tada MongoDB je NoSQL tipa baze podataka, umjesto podataka u formatu relacijskog tipa, pohranjuje podatke u dokumentima. Ovo cini MongoDB vrlo fleksibilan i prilagodljiv stvarnim poslovnim situacijama i zahtjevima.
  2. Ad hoc upiti - MongoDB podržava pretraživanje po polju, upitima raspona i pretragama regularnih izraza. Mogu se postavljati upiti za vraćanje određenih polja unutar dokumenata.
  3. Indeksiranje – Indeksi se mogu kreirati kako bi se poboljšala učinkovitost pretraživanja unutar MongoDB. Bilo koje polje u a MongoDB dokument se može indeksirati.
  4. odgovor - MongoDB može osigurati visoku dostupnost s replikacijskim skupovima. Replikacijski skup sastoji se od dva ili više MongoDB instance. Svaki član skupa replika može u bilo kojem trenutku djelovati u ulozi primarne ili sekundarne replike. Primarna replika je glavni poslužitelj koji komunicira s klijentom i obavlja sve operacije čitanja/pisanja. Sekundarne replike održavaju kopiju podataka primarnog poslužitelja pomoću ugrađene replikacije. Kada primarna replika zakaže, skup replika se automatski prebacuje na sekundarni, a zatim postaje primarni poslužitelj.
  5. Balansiranje opterećenja - MongoDB koristi koncept dijeljenja za vodoravno skaliranje dijeljenjem podataka na više MongoDB instanci. MongoDB može raditi preko više poslužitelja, uravnotežujući opterećenje i/ili duplicirajući podatke kako bi sustav održao u radu u slučaju kvara hardvera.

Modeliranje podataka u MongoDB

Kao što smo vidjeli iz uvodnog dijela, podaci u MongoDB ima fleksibilnu shemu. Za razliku od u SQL baze podataka, gdje morate imati deklariranu shemu tablice prije umetanja podataka, MongoDBZbirke korisnika ne provode strukturu dokumenta. Ova vrsta fleksibilnosti je ono što čini MongoDB tako moćan.

Prilikom modeliranja podataka u MongoDB, imajte na umu sljedeće:

  1. Koje su potrebe aplikacije – Pregledajte poslovne potrebe aplikacije i utvrdite koji su podaci i vrsta podataka potrebni za aplikaciju. Na temelju toga, osigurajte da je struktura dokumenta određena u skladu s tim.
  2. Koji su obrasci pretraživanja podataka – Ako predviđate veliku upotrebu upita, razmislite o korištenju indeksa u svom modelu podataka kako biste poboljšali učinkovitost upita.
  3. Događaju li se česti unos, ažuriranja i uklanjanja u bazi podataka? Ponovno razmotrite korištenje indeksa ili uključite sharding ako je potrebno u dizajn modeliranja podataka kako biste poboljšali učinkovitost vaše ukupne MongoDB okoliš.

Razlika između MongoDB & RDBMS

U nastavku su neke od ključnih razlika između pojmova MongoDB i RDBMS:

RDBMS MongoDB Razlika
Stol Kolekcija In RDBMS, tablica sadrži stupce i retke koji se koriste za pohranu podataka, dok u MongoDB Ista ta struktura poznata je kao kolekcija. Kolekcija sadrži dokumente koji pak sadrže polja, koja su pak parovi ključ-vrijednost.
Red dokument U RDBMS-u, redak predstavlja jednu, implicitno strukturiranu podatkovnu stavku u tablici. U MongoDB, podaci su pohranjeni u dokumentima.
Kolona Polje U RDBMS-u, stupac označava skup vrijednosti podataka. Ovi u MongoDB poznata su kao polja.
Pridružuje Ugrađeni dokumenti U RDBMS-u, podaci su ponekad raspoređeni po raznim tablicama, a kako bi se prikazao potpuni prikaz svih podataka, ponekad se formira spajanje između tablica kako bi se dobili podaci. MongoDB, podaci se obično pohranjuju u jednoj kolekciji, ali su odvojeni pomoću ugrađenih dokumenata. Dakle, ne postoji koncept spajanja u MongoDB.

Osim razlika u pojmovima, u nastavku je prikazano još nekoliko razlika:

  1. Relacijske baze podataka poznate su po provođenju integriteta podataka. Ovo nije izričit zahtjev u MongoDB.
  2. RDBMS zahtijeva da podaci budu normalizirani prvo kako bi se spriječili zapisi osiroćeni i duplikati. Normaliziranje podataka tada zahtijeva više tablica, što će rezultirati većim brojem spajanja tablica, te stoga zahtijevati više ključeva i indeksa. Kako baze podataka počnu rasti, performanse mogu postati problem. Opet, ovo nije eksplicitni zahtjev u MongoDB. MongoDB je fleksibilan i ne zahtijeva da se podaci prvo normaliziraju.

Pitanja i odgovori

MongoDB pohranjuje velike količine nestrukturiranih i polustrukturiranih podataka, što ga čini korisnim za AI i ML cjevovode. Njegovi fleksibilni dokumenti sadrže podatke za obuku, skupove značajki i metapodatke modela, a Atlas dodaje vektorsko pretraživanje za AI aplikacije.

Da. MongoDB Atlas Vector Search vam omogućuje pohranjivanje i ispitivanje vektorskih ugradbi uz vaše dokumente. To podržava semantičko pretraživanje, preporuke i generiranje prošireno pretraživanjem za AI aplikacije bez zasebne vektorske baze podataka.

MongoDB Community Edition je besplatno i otvorenog koda. MongoDB također nudi Atlas, upravljanu uslugu u oblaku s besplatnim paketom, te Enterprise Edition s naprednom sigurnošću i podrškom uz naknadu.

Mnoge velike organizacije koriste MongoDB za fleksibilnu pohranu podataka velikog volumena, uključujući tvrtke u e-trgovini, igrama, IoT-u i upravljanju sadržajem. Njegova skalabilnost putem shardinga i replikacije odgovara aplikacijama s milijunima dokumenata.

Sažmite ovu objavu uz: