Cum să începeți cu MongoDB în 10 minute
de Navindu Jayatilake
MongoDB este o bază de date NoSQL bogată orientată spre documente.
Dacă sunteți un începător complet la NoSQL, vă recomand să aruncați o privire rapidă la articolul meu NoSQL publicat anterior.
astăzi, am vrut să împărtășesc câteva dintre lucrurile de bază despre comenzile MongoDB, cum ar fi interogarea, filtrarea datelor, ștergerea, actualizarea și așa mai departe.
bine, destul de discuție, să trecem la treabă!
configurare ?
pentru a lucra cu MongoDB, mai întâi trebuie să instalați MongoDB pe computer. Pentru a face acest lucru, vizitați centrul oficial de descărcare și descărcați versiunea pentru sistemul dvs. de operare specific. Aici, am folosit Windows.
după descărcarea MongoDB community server setup, veți trece printr-un proces de instalare ‘next after next’. După ce ați terminat, mergeți la unitatea C în care ați instalat MongoDB. Accesați program files și selectați directorul MongoDB.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
în directorul bin, veți găsi un cuplu interesant de fișiere executabile.
- mongod
- mongo
să vorbim despre aceste două fișiere.mongod înseamnă „Mongo Daemon”. mongod este un proces de fundal folosit de MongoDB. Scopul principal al mongod este de a gestiona toate sarcinile serverului MongoDB. De exemplu, acceptarea cererilor, răspunsul la client și gestionarea memoriei.mongo este un shell de linie de comandă care poate interacționa cu clientul (de exemplu, administratorii de sistem și dezvoltatorii).
acum să vedem cum putem pune în funcțiune acest server. Pentru a face acest lucru pe Windows, mai întâi trebuie să creați câteva directoare în unitatea C. Deschideți promptul de comandă în interiorul unității C și faceți următoarele:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
scopul acestor directoare este MongoDB necesită un folder pentru a stoca toate datele. Calea implicită a directorului de date MongoDB este /data/db
pe unitate. Prin urmare, este necesar să furnizăm aceste directoare ca atare.
dacă porniți serverul MongoDB fără aceste directoare, veți vedea, probabil, această eroare următoare:
după crearea celor două fișiere, peste cap din nou la folderul bin aveți în directorul mongodb și deschide shell-ul în interiorul ea. Executați următoarea comandă:
mongod
Voil inkt! Acum serverul nostru MongoDB este în funcțiune! ?pentru a lucra cu acest server, avem nevoie de un mediator. Deci, deschideți o altă fereastră de comandă în folderul bind și executați următoarea comandă:
mongo
după rularea acestei comenzi, navigați la shell-ul pe care l-am rulat comanda mongod (care este serverul nostru). Veți vedea un mesaj ‘conexiune acceptată’ la sfârșit. Asta înseamnă că instalarea și configurarea noastră au succes!
pur și simplu rulați în shell mongo:
db
configurarea variabilelor de mediu
pentru a economisi timp, puteți configura variabilele de mediu. În Windows, acest lucru se face urmând meniurile de mai jos:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
pur și simplu copiați calea folderului nostru bin și apăsați OK! În cazul meu esteC:\Program Files\MongoDB\Server\4.0\bin
acum sunteți gata!
lucrul cu MongoDB
există o grămadă de GUI (interfață grafică de utilizator) pentru a lucra cu serverul MongoDB, cum ar fi MongoDB Compass, Studio 3T și așa mai departe.
acestea oferă o interfață grafică, astfel încât să puteți lucra cu ușurință cu baza de date și de a efectua interogări în loc de a utiliza un shell și tastarea interogări manual.
dar în acest articol vom folosi promptul de comandă pentru a ne face munca.
acum este timpul să ne scufundăm în comenzile MongoDB care vă vor ajuta să le utilizați cu proiectele viitoare.
- Deschideți promptul de comandă și tastați
mongod
pentru a porni serverul MongoDB.
2. Deschideți un alt shell și tastați mongo
pentru a vă conecta la serverul de baze de date MongoDB.
1. Găsirea bazei de date curente în care vă aflați
db
această comandă va afișa baza de date curentă în care vă aflați. test
este baza de date inițială care vine în mod implicit.
2. Listarea bazelor de date
show databases
am în prezent patru baze de date. Acestea sunt:CrudDB
admin
config
șilocal
.
3. Du-te la o anumită bază de date
use <your_db_name>
aici m-am mutat la local
baza de date. Puteți verifica acest lucru dacă încercați comanda db
pentru a imprima numele bazei de date curente.
4. Crearea unei baze de date
cu RDBMS (Relational Database Management Systems) Avem baze de date, tabele, rânduri și coloane.dar în bazele de date NoSQL, cum ar fi MongoDB, datele sunt stocate în format BSON (o versiune binară a JSON). Ele sunt stocate în structuri numite „colecții”.
în bazele de date SQL, acestea sunt similare cu tabelele.
bine, hai sa vorbim despre modul în care vom crea o bază de date în coajă Mongo.
use <your_db_name>
stai, am avut această comandă înainte! De ce o folosesc din nou?!
în MongoDB server, în cazul în care baza de date este prezent deja, folosind această comandă va naviga în baza de date.
dar dacă baza de date nu este deja prezentă, atunci serverul MongoDB va crea baza de date pentru dvs. Apoi, va naviga în ea.
după crearea unei noi baze de date, rularea comenziishow database
nu va afișa baza de date nou creată. Acest lucru se datorează faptului că, până când nu are date (documente) în el, nu se va afișa în lista dvs.
5. Crearea unei colecții
navigați în baza de date nou creată cu comandause
.
de fapt, există două moduri de a crea o colecție. Să le vedem pe amândouă.
o modalitate este de a insera date în colecție:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
aceasta va crea colecția dvs. myCollection
chiar dacă colecția nu există. Apoi va insera un document cu name
și age
. Acestea sunt colecții fără limită.
a doua cale este prezentată mai jos:
2.1 Crearea unei colecții fără capac
db.createCollection("myCollection")
2.2 crearea unei colecții fără capac
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
în acest fel, veți crea o colecție fără a insera date.
o „colecție limitată” are un număr maxim de documente care împiedică debordarea documentelor.
în acest exemplu, am activat plafonarea, setând valoarea sa la true
.
size : 2
înseamnă o limită de doi megaocteți șimax: 2
setează numărul maxim de documente la două.
acum, dacă încercați să inserați mai mult de două documente înmySecondCollection
și utilizați comandafind
(despre care vom vorbi în curând), veți vedea doar cele mai recent introduse documente. Rețineți că acest lucru nu înseamnă că primul document a fost șters — pur și simplu nu se afișează.
6. Introducerea datelor
putem insera date într-o nouă colecție sau într-o colecție care a fost creată anterior.
există trei metode de inserare a datelor.
-
insertOne()
este utilizat pentru a insera doar un singur document. -
insertMany()
este utilizat pentru a insera mai multe documente. -
insert()
este folosit pentru a insera documente cât de multe doriți.
mai jos sunt câteva exemple:
- insertOne ()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
- insertMany ()
db.myCollection.insertMany()
metoda insert()
este similară cu metoda insertMany()
metodă.
de asemenea, observați că am introdus o nouă proprietate numitălocation
în documentul pentruJohn Doe
. Deci, dacă utilizați find
, atunci veți vedea numai pentru john doe
proprietatea location
este atașată.
acest lucru poate fi un avantaj atunci când vine vorba de baze de date NoSQL, cum ar fi MongoDB. Permite scalabilitatea.
7. Interogarea datelor
Iată cum puteți interoga toate datele dintr-o colecție:
db.myCollection.find()
dacă doriți să vedeți aceste date într-un mod mai curat, trebuie doar să adăugați .pretty()
la sfârșitul acestuia. Aceasta va afișa documentul în format JSON destul de tipărit.
db.myCollection.find().pretty()
Wait…In aceste exemple tocmai ați observat ceva de genul_id
? Cum a ajuns asta acolo?Ei bine, Ori de câte ori introduceți un document, MongoDB adaugă automat un câmp _id
care identifică în mod unic fiecare document. Dacă nu doriți să se afișeze, pur și simplu rulați următoarea comandă
db.myCollection.find({}, _id: 0).pretty()
în continuare, ne vom uita la filtrarea datelor.
Dacă doriți să afișați un anumit document, puteți specifica un singur detaliu al documentului pe care doriți să îl afișați.
db.myCollection.find( { name: "john" })
Să presupunem că doriți doar să afișați persoanele a căror vârstă este mai mică de 25 de ani. Puteți utiliza$lt
pentru a filtra acest lucru.
db.myCollection.find( { age : {$lt : 25} })
în mod similar, $gt
înseamnă mai mare decât, $lte
este „mai mic sau egal cu”, $gte
este „mai mare sau egal cu” și $ne
este „nu este egal”.
8. Actualizarea documentelor
Să presupunem că doriți să actualizați adresa sau vârsta cuiva, cum ați putea face acest lucru? Ei bine, vedeți următorul exemplu:
db.myCollection.update({age : 20}, {$set: {age: 23}})
primul argument este câmpul documentului pe care doriți să îl actualizați. Aici, specific age
pentru simplitate. În mediul de producție, ai putea folosi ceva de genul _id
câmp.
este întotdeauna mai bine să folosiți ceva de genul_id
pentru a actualiza un rând unic. Acest lucru se datorează faptului că mai multe câmpuri pot avea același age
și name
. Prin urmare, dacă actualizați un singur rând, acesta va afecta toate rândurile care au același nume și vârstă.
Dacă actualizați un document în acest fel cu o proprietate nouă, să spunemlocation
de exemplu, documentul va fi actualizat cu noul atribut. Și dacă faceți un find
, atunci rezultatul va fi:
dacă trebuie să eliminați o proprietate dintr-un singur document, puteți face așa ceva (să presupunem că doriți age
a fi plecat):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Eliminarea unui document
așa cum am menționat mai devreme, atunci când actualizați sau ștergeți un document, trebuie doar să specificați_id
nu doarname
age
location
.
db.myCollection.remove({name: "navindu"});
10. Eliminarea unei colecții
db.myCollection.remove({});
Notă, Aceasta nu este egală cu metodadrop()
. Diferența este drop()
este utilizat pentru a elimina toate documentele din interiorul unei colecții, dar metoda remove()
este utilizată pentru a șterge toate documentele împreună cu colecția în sine.
operatori logici
MongoDB oferă operatori logici. Imaginea de mai jos rezumă diferitele tipuri de operatori logici.
Să presupunem că doriți să afișați persoanele a căror vârstă este mai mică de 25 de ani și, de asemenea, a căror locație este Colombo. Ce am putea face?
putem folosi$and
operator!
db.myCollection.find({$and:});
nu în ultimul rând, să vorbim despre agregare.
agregare
un memento rapid pe ceea ce am învățat despre funcțiile de agregare în bazele de date SQL:
pur și simplu, agregarea grupează valorile din mai multe documente și le rezumă într-un fel.
Imaginați-vă dacă am avea studenți de sex masculin și feminin într-o colecție recordBook
și vrem un număr total pe fiecare dintre ei. Pentru a obține suma masculilor și femelelor, am putea folosi funcția agregată $group
.
db.recordBook.aggregate();
înfășurarea
deci, am discutat elementele de bază ale MongoDB de care ați putea avea nevoie în viitor pentru a construi o aplicație. Sper că ți – a plăcut acest articol-mulțumesc pentru lectură!