Ce Este MongoDB? Architectură, caracteristici și exemple
⚡ Rezumat inteligent
MongoDB este o bază de date NoSQL orientată pe documente, utilizată pentru stocarea de volume mari de date, utilizând colecții și documente în loc de tabele și rânduri. Această resursă explică MongoDB caracteristici, un exemplu de document, componente cheie ale arhitecturii, motive pentru utilizarea sa, modelarea datelor și cum diferă de o bază de date relațională.

Ce Este MongoDB?
MongoDB este o bază de date NoSQL orientată spre documente, utilizată pentru stocarea datelor cu volum mare. În loc să folosiți tabele și rânduri ca în bazele de date relaționale tradiționale, MongoDB face uz de colecții și documente. Documentele constau din perechi cheie-valoare care reprezintă unitatea de bază a datelor în MongoDBColecțiile conțin seturi de documente și funcții, ceea ce este echivalentul tabelelor bazelor de date relaționale. MongoDB este o bază de date care a apărut la mijlocul anilor 2000.
MongoDB Categorii
- Fiecare bază de date conține colecții care, la rândul lor, conțin documente. Fiecare document poate fi diferit, cu un număr variabil de câmpuri. Dimensiunea și conținutul fiecărui document pot fi diferite unul de celălalt.
- Structura documentului este mai în concordanță cu modul în care dezvoltatorii își construiesc clasele și obiectele în limbajele lor de programare respective. Dezvoltatorii vor spune adesea că clasele lor nu sunt rânduri și coloane, ci au o structură clară cu perechi cheie-valoare.
- Rândurile (sau documentele așa cum sunt numite în MongoDB) nu necesită o schemă definită în prealabil. În schimb, câmpurile pot fi create din mers.
- Modelul de date disponibil în cadrul MongoDB vă permite să reprezentați relații ierarhice, să stocați tablouri și să stocați mai ușor alte structuri mai complexe.
- Scalabilitate - MongoDB Mediile sunt foarte scalabile. Companiile din întreaga lume au clustere definite, unele dintre ele rulând peste 100 de noduri cu aproximativ milioane de documente în baza de date.
MongoDB Exemplu
Exemplul de mai jos arată cum poate fi modelat un document MongoDB.
- Câmpul _id este adăugat de MongoDB pentru a identifica în mod unic documentul din colecție.
- Ceea ce puteți observa este că datele comenzii (ID comandă, produs și cantitate), care în RDBMS vor fi stocate în mod normal într-un tabel separat, sunt de fapt stocate ca un document încorporat în colecția însăși, în MongoDBAceasta este una dintre diferențele cheie în modul în care datele sunt modelate în MongoDB.
Componentele cheie ale MongoDB Architectură
Mai jos sunt câțiva dintre termenii obișnuiți utilizați în MongoDB:
- _id – Acesta este un câmp obligatoriu în fiecare MongoDB document. Câmpul _id reprezintă o valoare unică în MongoDB document. Câmpul _id este ca cheia primară a documentului. Dacă creați un document nou fără un câmp _id, MongoDB va crea automat câmpul. De exemplu, dacă vedem exemplul tabelului de clienți de mai sus, MongoDB va adăuga un identificator unic de 24 de cifre fiecărui document din colecție.
| _Id | Număr de înregistrare client | Numele clientului | Comanda ID |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Colectie – Acesta este un grupping of MongoDB documente. O colecție este echivalentul unui tabel creat în orice alt RDBMS, cum ar fi Oracle sau MS SQL. O colecție există într-o singură bază de date. După cum s-a văzut din introducere, colecțiile nu impun niciun fel de structură.
- cursor – Acesta este un pointer către setul de rezultate al unei interogări. Clienții pot itera printr-un cursor pentru a prelua rezultatele.
- Baza de date – Acesta este un container pentru colecții, ca în RDBMS, unde este un container pentru tabele. Fiecare bază de date primește propriul set de fișiere în sistemul de fișiere. A MongoDB serverul poate stoca mai multe baze de date.
- Document – O înregistrare în a MongoDB Colecția se numește practic document. Documentul, la rândul său, va consta din nume de câmpuri și valori.
- Câmp – O pereche nume-valoare într-un document. Un document are zero sau mai multe câmpuri. Câmpurile sunt analoage coloanelor din bazele de date relaționale. Următoarea diagramă prezintă un exemplu de câmpuri cu perechi cheie-valoare. Așadar, în exemplul de mai jos, CustomerID și 11 sunt una dintre perechile cheie-valoare definite în document.
- JSON – Aceasta este cunoscută ca JavaScenariu Notarea obiectului. Acesta este un format de text simplu, care poate fi citit de om, pentru exprimarea datelor structurate. JSON este acceptat în prezent în multe limbaje de programare.
Doar o notă rapidă despre diferența cheie dintre câmpul _id și un câmp de colecție normal. Câmpul _id este utilizat pentru a identifica în mod unic documentele dintr-o colecție și este adăugat automat de MongoDB când se creează colecția.
De ce folosiți MongoDB?
Mai jos sunt câteva dintre motivele pentru care cineva ar trebui să înceapă să utilizeze MongoDB:
- Orientat pe documente - De cand MongoDB este NoSQL baza de date de tip, în loc să aibă date într-un format de tip relațional, stochează datele în documente. Asta face MongoDB foarte flexibil și adaptabil la situațiile și cerințele reale ale lumii afacerilor.
- Interogări ad-hoc - MongoDB acceptă căutarea după câmp, interogări de interval și căutări cu expresii regulate. Se pot face interogări pentru a returna câmpuri specifice din documente.
- Indexarea – Se pot crea indexuri pentru a îmbunătăți performanța căutărilor în cadrul MongoDB. Orice câmp din a MongoDB documentul poate fi indexat.
- Replicarea - MongoDB poate oferi disponibilitate ridicată cu seturi de replici. Un set de replici este format din două sau mai multe MongoDB instanțe. Fiecare membru al setului de replici poate acționa în rolul replicii primare sau secundare în orice moment. Replica primară este serverul principal care interacționează cu clientul și efectuează toate operațiunile de citire/scriere. Replicile secundare păstrează o copie a datelor replicii primare folosind replicarea încorporată. Când o replică primară eșuează, setul de replici trece automat la serverul secundar și apoi devine serverul primar.
- Echilibrarea sarcinii - MongoDB folosește conceptul de sharding pentru a scala orizontal prin împărțirea datelor în mai multe MongoDB instanțe. MongoDB poate rula pe mai multe servere, echilibrând încărcarea și/sau dublând datele pentru a menține sistemul în funcțiune în caz de defecțiune hardware.
Modelarea datelor în MongoDB
După cum am văzut din secțiunea introducere, datele din MongoDB are o schemă flexibilă. Spre deosebire de in SQL baze de date, în care trebuie să aveți o schemă a tabelului declarată înainte de a introduce date, MongoDBcolecțiile lui nu impun structura documentului. Acest tip de flexibilitate este ceea ce face MongoDB atat de puternic.
La modelarea datelor în MongoDB, tine cont de urmatoarele lucruri:
- Care sunt nevoile aplicației – Analizați nevoile de business ale aplicației și vedeți ce date și tipul de date sunt necesare pentru aplicație. Pe baza acestora, asigurați-vă că structura documentului este decisă în consecință.
- Care sunt modelele de recuperare a datelor – Dacă anticipați o utilizare intensă a interogărilor, luați în considerare utilizarea indexurilor în modelul de date pentru a îmbunătăți eficiența interogărilor.
- Au loc inserări, actualizări și eliminări frecvente în baza de date? Reconsiderați utilizarea indexurilor sau încorporați fragmentarea, dacă este necesar, în designul modelării datelor pentru a îmbunătăți eficiența generală a proiectului. MongoDB mediu. (envrironment)
Diferență între MongoDB și RDBMS
Mai jos sunt câteva dintre diferențele cheie dintre termenii MongoDB și RDBMS:
| RDBMS | MongoDB | Diferenţă |
|---|---|---|
| Tabel | Colectie | In RDBMS, tabelul conține coloanele și rândurile care sunt utilizate pentru stocarea datelor, în timp ce în MongoDB Aceeași structură este cunoscută sub numele de colecție. Colecția conține documente care, la rândul lor, conțin câmpuri, care la rândul lor sunt perechi cheie-valoare. |
| Rând | Document | În RDBMS, rândul reprezintă un singur element de date structurat implicit dintr-un tabel. În MongoDB, datele sunt stocate în documente. |
| Coloană | Câmp | În RDBMS, coloana denotă un set de valori de date. Acestea in MongoDB sunt cunoscute sub numele de câmpuri. |
| Se alătură | Documente încorporate | În RDBMS, datele sunt uneori distribuite în diverse tabele și, pentru a afișa o imagine completă a tuturor datelor, uneori se formează o joncțiune între tabele pentru a obține datele. În MongoDB, datele sunt stocate în mod normal într-o singură colecție, dar separate prin utilizarea documentelor încorporate. Deci nu există conceptul de joncțiuni în MongoDB. |
Pe lângă diferențele dintre termeni, mai jos sunt prezentate și alte câteva diferențe:
- Bazele de date relaționale sunt cunoscute pentru aplicarea integrității datelor. Aceasta nu este o cerință explicită în MongoDB.
- RDBMS necesită ca datele să fie normalizat mai întâi, astfel încât să poată preveni înregistrările orfane și duplicatele. Normalizarea datelor necesită apoi mai multe tabele, ceea ce va duce la mai multe joncțiuni de tabele, necesitând astfel mai multe chei și indexuri. Pe măsură ce bazele de date încep să crească, performanța poate deveni o problemă. Din nou, aceasta nu este o cerință explicită în MongoDB. MongoDB este flexibil și nu are nevoie ca datele să fie mai întâi normalizate.


