Prvi koraci s MongoDB-om za početnike

Saznajte što su MongoDB, vodič za instalaciju i osnovni rad.


MongoDB NoSQL trend je više nego ikad prije. Imate li potrebnog razumijevanja za to?

Ne brinite ako ne, sljedeće će vam pomoći.

Uvod

Budući da se web-mjesto prelazi u paradigmu prema dinamičnom sadržaju, povećala se potražnja za No-SQL bazom podataka. To je stvorilo brojne No-SQL baze podataka poput MongoDB.

Klasificiran kao baza podataka bez SQL-a, MongoDB je baza podataka koja se temelji na dokumentima i pohranjuje podatke u obliku JSON dokumenata s automatski generiranom za svaki dokument.

No-SQL baza podataka je baza podataka u kojoj struktura tablice nije fiksna, za razliku od strukturiranih SQL baza podataka. MongoDB pohranjuje podatke u obliku JSON niza neovisno o broju atributa ili imenu atributa u određenom stupcu.

To omogućava programerima da brzo unose promjene u entitetima bez potrebe za promjenama na razini baze podataka.

Instaliranje MongoDB

MongoDB je, kao i svaka druga baza podataka, dostupan u više varijanti, ovisno o razvojnim potrebama. Varijante su navedene dolje i mogu se koristiti ili preuzeti s ovog veza

  • MongoDB Atlas – Baza podataka kao usluga
  • Community Server – Besplatno za korištenje programera u zajednici
  • MongoDB Enterprise Edition – komercijalna verzija s dodatnim značajkama

Svaki od njih u potpunosti je kompatibilan sa svakim operativnim sustavom. Za početak, instalaciju poslužitelja zajednice, preuzmite odgovarajuću instalacijsku datoteku prema vašem operativnom sustavu.

Proces instalacije malo se razlikuje za svaki operativni sustav, pa bismo stoga prošli svaku instalaciju operativnog sustava odvojeno.

Instalacija u MacOS-u

Da biste instalirali MongoDB u MacOS. Preuzmite .tgz arhivu koja sadrži potrebne binarne datoteke. Ako ne želite arhivirati datoteku, trebali biste moći vidjeti hrpu binarnih datoteka koje se nalaze u kanta mapa.

  • Pomaknite mapu kante na željeno mjesto
  • Otvorite terminal i promijenite mapu u gore navedenom direktoriju
  • Izvršite naredbu u nastavku za stvaranje baze podataka na željenom mjestu.

$ ./mongod –dbpath / put-do-željenog imenika /

U gornjoj naredbi zamijenite put do direktorija željenom stazom i poslužitelj će se pokrenuti čim se naredba izvrši.

Instalacija u sustavu Windows

MongoDB centar za preuzimanje pruža izvršnu datoteku .MSI paket za instaliranje MongoDB u Windows. Instalacija u Windowsima prilično je jednostavna i može se obaviti pomoću nekoliko naredbi nakon preuzimanja instalacije.

  • Izvršite donje naredbe za instaliranje MongoDB-a na Windows PC / poslužitelj.

> CD / mapa za postavljanje /
> msiexec.exe / q / i .msi ^
installLocation ="C: \ programske datoteke \ MongoDB \" ^
ADDLOCAL ="MonitoringTools, ImportExportTools, MiscellaneousTools"

Gore navedene naredbe odvest će vas u odgovarajuću mapu i izvršiti postavljanje za instalaciju na navedenom mjestu. Jednom instaliran, morate konfigurirati zadani put za pohranu baze podataka za MongoDB. Naredba u nastavku pomaže vam u konfiguriranju iste

> md \ db \ podaci

Gornja naredba stvara mapu db / data u direktoriju na koji je naredbeni redak trenutno usmjeren. U slučaju da ponovo morate konfigurirati bazu podataka, mongod.exe možete koristiti s dbpath argument kao što je prikazano u nastavku:

>"C: \ Programske datoteke \ MongoDB \ bin \ mongod.exe" –dbpath d: \ tutorial \ mongodb \ podaci

Instalacija u Linuxu

Slično kao i za MacOS preuzimanja, MongoDB za Linux inačice je dostupan i u obliku arhivirane hrpe binarnih datoteka. Postupak instalacije MongoDB je prilično sličan.

  • Pomaknite binarne datoteke na željeno mjesto
  • Otvorite terminal u mapi
  • Izvršite naredbu u nastavku sa željenom DB lokacijom

$ ./mongod –dbpath / put-do-željenog imenika /

Stvaranje prve kolekcije

MongoDB pohranjuje podatke u obliku JSON dokumenata. Skupina takve dokumentacije zajednički je poznata kao zbirka u MongoDB-u. Tako je zbirka analogna tablici u relacijskoj bazi podataka dok je dokument analogan zapisu.

Za pohranu dokumenata prvo moramo stvoriti zbirku. Uzbudljiva stvar NoSQL baze podataka je da za razliku od SQL baze podataka, u njoj ne morate navesti imena stupaca ili vrste podataka.

Prvi korak prema stvaranju kolekcije je stvaranje baze podataka. Da biste stvorili bazu podataka i povezali se s njom pomoću naredbenog retka, izvršite donju naredbu iz matičnog direktorija instalacije MongoDB.

$ ./bin/mongo udžbenik

Ova se naredba koristi za pokretanje veze s bazom podataka i povezivanje s bazom podataka udžbenika istovremeno. U zapisniku će se prikazati hrpa redaka koji pokazuju da se naredbena linija povezala s MongoDB bazom podataka.

Primjer slike naredbenog retka prikazan je dolje kako bi vam dao bolju predstavu o istoj.

  • Za stvaranje kolekcije izvršite naredbu u nastavku:

$ > db.createCollection ( ‘firstCollection’);

Tako se stvara prazna zbirka. Sljedeći je korak umetanje podataka i obrada zapisa u MongoDB naredbenog retka.

Umetanje dokumenta u Zbirku

Kao što je gore spomenuto, u svaku MongoDB kolekciju moguće je umetnuti gotovo bilo koji JSON.

Započnimo s umetanjem prvog dokumenta JSON u firstCollection zbirka stvorena gore.

> db.firstCollection.insertOne ({ime: ‘Abhishek’, vještina: ‘MongoDB’});

Gornja naredba ubacuje jedan JSON dokument u firstCollection. Isto se može provjeriti pomoću dolje prikazane naredbe:

> db.firstCollection.find ();

Gornja naredba ima višestruku upotrebu, ovisno o varijaciji funkcije find (). Kada nisu navedeni argumenti, kao što je slučaj s gornjom naredbom, dohvaća se sve dostupne dokumente iz zbirke.

Možete umetnuti još jedan zapis i pokušati isti. Pri tome bi izlaz gornje naredbe bio sličan onome prikazanom u nastavku:

> db.firstCollection.find ();
{ "_iskaznica" : ObjectId ("5b043a32c29a7184535e783a"), "Ime" : "Abhishek", "vještina" : "MongoDB" }
{ "_iskaznica" : ObjectId ("5b05b4f0c29a7184535e783b"), "Ime" : "GeekFlare", "vještina" : "Java, MongoDB, NodeJS" }

Kao što se može vidjeti, prikazana su dva dostupna zapisa. Funkcija find () može se jednostavno upotrijebiti za filtriranje dokumenata na temelju određenih parametara. Filtrirajmo dokument koristeći atribut name.

Proces filtriranja je jednostavan, a može se razumjeti iz naredbe u nastavku:

db.firstCollection.find ({ime: ‘Abhishek’});
{ "_iskaznica" : ObjectId ("5b043a32c29a7184535e783a"), "Ime" : "Abhishek", "vještina" : "MongoDB" }

Filter se također može koristiti s više atributa u JSON-u. Iako je u upit moguće dodati bilo koji broj parametara, ograničenje ovog pristupa je u tome što odgovara samo točnoj vrijednosti atributa.

Filtriranje zapisa pomoću Regexa

Za izvršavanje MongoDB ekvivalenta klauzule MySQL poput, MongoDB koristi Regularni izraz. Regex je niz znakova koji tvore obrazac koji se mora slagati. Regex literali slični su one koje se koriste u Javascriptu.

Za trenutnu zbirku pokušat ćemo dohvatiti podatke podudaranjem obrasca za atribut vještine. Naredba u nastavku dobiva popis ljudi s vještinom MongoDB. Dakle, dohvatit će dva zapisa jer oba sadrže niz MongoDB.

> db.firstCollection.find ({vještina. /.* MongoDB * /});
{ "_iskaznica" : ObjectId ("5b043a32c29a7184535e783a"), "Ime" : "Abhishek", "vještina" : "MongoDB" }
{ "_iskaznica" : ObjectId ("5b05b4f0c29a7184535e783b"), "Ime" : "GeekFlare", "vještina" : "Java, MongoDB, NodeJS" }
> db.firstCollection.find ({vještina. /.* Java * /});
{ "_iskaznica" : ObjectId ("5b05b4f0c29a7184535e783b"), "Ime" : "GeekFlare", "vještina" : "Java, MongoDB, NodeJS" }

Gornji kôd prikazuje rezultat dvaju različitih niza u regex obliku. Prvi upit dohvaća popis dokumenta u kojem atribut vještine sadrži ključnu riječ MongoDB, dok drugi traži ljude koji su vješti samo za Java.

Sljedeći je izazov u upitu na temelju kriterija ispitivanje s uvjetom OR ili AND.

Složeni upiti u MongoDB

Kao što je vidljivo iz gornjih naredbi, MongoDB gdje klauzule rade na JSON-u. Proces kombiniranja uvjeta također ovisi o samom JSON-u. MongoDB pruža operatore poput $ ili, $ i, kao i $, koji ne rade relevantne operacije upita.

Pokušajmo dobiti popis dokumenata koji atribut imena sadrži Abhishek ili skill sadrži Java.

> db.firstCollection.find ({$ ili: [{name: ‘Abhishek’}, {skill: /.* Java. * /}]});
{ "_iskaznica" : ObjectId ("5b043a32c29a7184535e783a"), "Ime" : "Abhishek", "vještina" : "MongoDB" }
{ "_iskaznica" : ObjectId ("5b05b4f0c29a7184535e783b"), "Ime" : "Geekflare", "vještina" : "Java, MongoDB, NodeJS" }

Kao što se može vidjeti, dohvaća oba zapisa. Možete pokušati koristiti atribut name kao Geekflare i vidjeti promjenu. Prikazat će se samo dokument s tri vještine i imenom Geekflare.

Slično tome, moguće je koristiti $ i operator s nizom uvjeta JSON kao što je prikazano gore.

Za sljedeći skup operatora trebali bismo stvoriti još jednu zbirku i dodati joj neke zapise pomoću naredbi u nastavku.

> db.createCollection ( ‘studentmarks’);
{ "u redu" : 1}
> db.studentmarks.insertMany ([{ime: ‘A’, oznake: 20} {ime: ‘B’, oznake: 25} {ime: ‘C’, oznake: 22} {ime: ‘D’, oznake: 30}]);
{
"priznao" : istina,
"insertedIds" : [
ID objekta ("5b06e7b5c29a7184535e783c"),
ID objekta ("5b06e7b5c29a7184535e783d"),
ID objekta ("5b06e7b5c29a7184535e783e"),
ID objekta ("5b06e7b5c29a7184535e783f")
]
}

Sljedeći skup operatora koji bismo koristili su operateri za usporedbu u upitu. Za usporedbu vrijednosti koristeći kriterije poput manje od ili veće od ili nije jednak, relevantne operatore koristimo u vrijednosti koju prolazimo.

Primjer dobivanja popisa učenika s ocjenama većim od 22 prikazan je u nastavku.

db.studentmarks.find ({oznake: {$ gt: 22}});
{ "_iskaznica" : ObjectId ("5b06e7b5c29a7184535e783d"), "Ime" : "B", "oznake" : 25}
{ "_iskaznica" : ObjectId ("5b06e7b5c29a7184535e783f"), "Ime" : "D", "oznake" : 30}

$ Gt ovdje ukazuje veće od u kriterijima. Tako se prikazuju dokumenti s oznakama većim od 22. Slično tome postoje i drugi operateri koji se mogu koristiti. Navedeni su u nastavku.

Operater
Koristiti
Primjer
$ eqProvjerite je li vrijednost jednaka{oznake: {$ ekv: 20}}
$ ltProvjerite je li vrijednost manja od{ocjene: {$ lt: 20}}
$ GTEProvjerite je li vrijednost veća ili jednaka{Oznake: {$ GTE: 22}}
$ LTEProvjerite je li vrijednost manje zahvalna ili jednaka{Oznake: {$ LTE: 22}}
$ NEProvjerite nije li vrijednost jednaka{{$ oznake: NE: 22}}
dolaraProvjerite je li vrijednost jednaka bilo kojoj od vrijednosti iz polja{Oznake: {$ u: [20,22]}}
$ NinProvjerite da li vrijednost nije jednaka vrijednosti bilo koje vrijednosti{Oznake: {nin $: [22,25]}}

GUI za MongoDB

U gornjoj raspravi upotrijebili smo naredbeni redak za izvršavanje naših upita u MongoDB-u.

Korištenje naredbenog retka moglo bi biti izazovno kada su u pitanju složeni upiti i veća hrpa podataka. Da biste olakšali pregled podataka i izvršavanje upita, MongoDB vam nudi odličan GUI alat pod nazivom MongoDB Compass.

MongoDB kompas se može lako preuzeti s MongoDB preuzimanje stranica. Nakon što preuzmete i instalirate MongoDB Compass, pokrenite aplikaciju i dočekat će vas zaslon sličan zaslonu prikazanom u nastavku..

MongoDBCompass

S obzirom da imate instaliran MongoDB poslužitelj, kliknite povezivanje sa zadanim pojedinostima. Morate biti prijavljeni i pokazati popis dostupnih baza podataka.

Kliknite bazu podataka da biste provjerili popis zbirki u db. Kao što je prikazano u nastavku, prikazuje popis dostupnih kolekcija u tutorialu db.

Klikom na zbirku prikazuje se popis dokumenata s potrebnim kontrolama za filtriranje zapisa pomoću JSON-a kao i mogućnost pregledavanja dokumenata u JSON formatu ili tabelarnom obliku prema našim pogodnostima.

GUI također čini dodavanje dokumenta jednostavnijim. Sve što trebate učiniti je kliknuti gumb Umetni dokument na donjem zaslonu. Otvara se mali dijaloški okvir koji traži detalje dokumenta s automatski generiranim ID-om dokumenta.

MongoDBDocuments

GUI pojednostavljuje mnoštvo operacija koje mogu biti teške za izvođenje MongoDB sučeljem naredbenog retka.

Zaključak

Upoznali smo suštinu NoSQL-a s različitim primjerima i razumjeli instalaciju, u čemu se dokumenti razlikuju u usporedbi s tipičnim zapisom relacijske baze podataka. Možete se također obratiti ovo učenje MongoDB-a od nule online tečaj.

A ako ste programer, onda bi vas to moglo zanimati ovaj.

OZNAKE:

  • Baza podataka

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map