MongoDB er en open source NoSQL-database, hvilket betyder, at den i modsætning til relationsdatabaser ikke accepterer inputværdier i tabelformat. Data gemmes i samlinger og dokumenter, da MongoDB er en dokumentorienteret database. Rækker i en SQL-tabel er blevet erstattet med dokumenter i MongoDB.
Denne artikel antager, at du allerede har installeret MongoDB-serveren på din computer og tilsluttet en shell til serveren. Hvis du allerede har gjort det, kan vi udforske nogle få funktioner i MongoDB, men først et par terminologier:Hvis ikke, kan du tjekke artiklen om, hvordan du installerer MongoDB på Ubuntu.
- Database – dette er en fysisk beholder, der rummer et sæt samlinger. Det kan indeholde nul eller flere samlinger. Der er ingen grænse for, hvor mange databaser der kan hostes i en enkelt serverinstans, da den kan være vært for flere databaser. Dens eneste begrænsning er den virtuelle hukommelses adresseplads, som det underliggende operativsystem kan tildele.
- Samling – et sæt MongoDB-dokumenter, der ligner "tabeller" i relationelle databasesystemer. En samling indeholder dokumenter med lignende eller beslægtede formål. Samlinger er skemaløse, hvilket betyder, at dokumenter inden for samme samling kan have forskellige felter.
- Dokument – dette er den grundlæggende enhed til lagring af data i MongoDB. De er analoge med ROW i traditionelle relationelle databasesystemer. Dokumenter er bestilt sæt af nøgle-værdi-par, hvilket betyder, at der er en tilknyttet værdi for hver nøgle. De omtales ofte som "objekter". De er repræsenteret i et JSON-lignende (nøgle-værdi-par) format. Data gemmes og forespørges i en binær repræsentation af JSON-lignende data kendt som BSON. Et eksempel på dette format er vist nedenfor:
{
Student_enroll: “foss123”,
grade: ‘B’
}
- Felt – dette svarer til kolonner i relationelle databaser. Det gemmes i forbindelse med dets værdi i nøgleværdi-par. Dokumenter i en samling kan have nul eller flere felter.
- _id – dette er et obligatorisk felt i hvert MongoDB-dokument. Hvis en bruger opretter et dokument uden et _id-felt, opretter MongoDB automatisk feltet. _ID'er bruges til at repræsentere unikke dokumenter i en samling. De fungerer som dokumenternes primære nøgler.
Oprettelse af en MongoDB-database
Databaseoprettelse i MongoDB sker implicit, når du forsøger at bruge en database. For at oprette en database skal du skrive følgende i mongo-skallen;
> use fossDB
Output:
Bemærk: For at åbne Mongo-skallen skal du køre kommandoen nedenfor:
mongo
MongoDB vil først tjekke for at bekræfte, om en database ved navn fossDB er til stede. Hvis ikke, vil den oprette en ny, der skal bruges. Mongo-skallen skifter derefter til fossDB. Det betyder, at alle samlinger og dokumenter, der oprettes, opdateres eller læses, kommer fra denne database, medmindre andet er angivet.
For at udskrive hvilken database du er i lige nu, bruger du kommandoen > db . For at få en liste over alle tilgængelige og oprettede databaser, bruger du kommandoen >vis . Et eksempel på disse kommandoer i brug er vist nedenfor;
>db
fossDB
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
Output:
Bemærk: Du må ikke blande dig i admin- og konfigurationsdatabaserne, da Mongo bruger dem til administrative formål.
Oprettelse af en MongoDB-samling
For at oprette en samling skal du først sikre dig, at du er i den rigtige database, som du har til hensigt at oprette samlingen i. Der er to måder at oprette en samling på:
1. Eksplicit oprettelse af en samling
Brug kommandoen nedenfor:
>db.createCollection("Collection1");
{"ok":1}
Output:
Denne kommando vil derefter oprette en samling ved navn Collection1
2. Indsættelse af et dokument i en ny samling
Du kan hurtigt prøve at indsætte et dokument i en ikke-eksisterende samling. Dette vil bede Mongo om at oprette en ny samling til dig. Bemærk, at selvom dette er praktisk med hensyn til programmatisk oprettelse af samlinger, hvis du bruger Mongo shell og laver en tastefejl et sted, mens du indsætter et dokument, kan dokumentet ende i en ny database, som du ikke ved.
Syntaksen for at oprette en ny samling er;
db.collection_name.insert(document);
For at oprette en samling Collection2 i fossDB-databasen skal du bruge følgende kommando:
> db.Collection2.insert({name: "Alex",key: "value",age: 20});
Output:
I dette eksempel er dokumentdelen repræsenteret af følgende JSON-streng:
{
name: "Alex",
key: "value"
age: 20
}
Disse er de nøgleværdi-par, der er typiske for en JSON-streng. "Navnet" er nøglen, og "Alex" er værdien. En bruger kan have flere dokumenter i denne samling med nøglenavnet og en anden værdi, f.eks. Max.
Brug kommandoen nedenfor til at liste alle samlingerne i en database:
> show collections
Collection1
Collection2
Output:
Fra outputtet vil du bemærke, at begge samlinger er blevet oprettet. Du er sikker på, at du kan tilføje et nyt dokument til en samling.
Viser samlinger
Hvis du ikke har bemærket det, har vi brugt temmelig meget søgeordet show, mens vi diskuterede de andre kommandoer. For at opsummere dette er kommandoen til at vise samlinger og databaser:
>show collections
>show dbs
Output:
I forbindelse med kommandoen db, disse kommandoer bruges til at udskrive den aktuelle database og er ret praktiske, mens de interagerer med Mongo-skallen.
Slet MongoDB samlinger og database
Drop-kommandoen er et nøgleord, som vi ikke har berørt i denne artikel. Det er en kommando, der bruges til at fjerne samlinger eller hele databaser fra en brugers Mongo-server. For at slippe, vil følgende syntaks tage dig gennem processen.
1. Slip indsamlinger
Vi vil fjerne samlingen "Collection2", som vi oprettede tidligere. Dette gøres ved at bruge kommandoen nedenfor:
>db.Collection2.drop()
Output:
For at bekræfte, at samlingen er blevet slettet, kan du bruge kommandoen vis samlinger til at liste de resterende samlinger. Du vil bemærke, at der mangler én samling på listen.
2. Slipning af databaser
Før du kører kommandoen til at droppe databasen, bør du kontrollere, at du er i den rigtige database, ellers kan du slippe af med den forkerte database og ende med at miste værdifulde data, som du ikke havde til hensigt at slette. I dette eksempel vil vi droppe databasen fossDB, som vi havde oprettet tidligere. Lad os sikre os, at vi er i den korrekte database ved hjælp af kommandoen nedenfor:
>db
fossDB
Output:
lad os derefter slippe databasen ved at bruge kommandoen nedenfor:
>db.dropDatabase();
Output:
Nedenfor vil vi præsentere forskellige SQL-udtryk og deres tilsvarende MongoDB-udtryk;
SQL-vilkår | MongoDB-vilkår |
---|---|
Database | Database |
Tabel | Samling |
Indeks | Indeks |
Række | Dokument / BSON-dokument |
Kolonne | Felt |
Tabelsammenføjninger | Indlejrede dokumenter og links |
Primær nøgle – i SQL angiver dette enhver unik kolonne- eller kolonnekombination | Primær nøgle – denne nøgle indstilles automatisk til feltet _id i MongoDB |
Konklusion
MongoDB har opnået massiv popularitet i udviklernes verden på grund af den JSON-lignende repræsentation, skalerbarhed, lethed og dynamiske måde at skabe dokumenter på. Denne artikel har diskuteret de tre kommandoer, der bruges i MongoDB-skallen. Vi håber, at denne artikel har hjulpet dig med at forstå disse kommandoer bedre. Hvis du leder efter en database, der skal bruges i et projekt til datatunge løft, er MongoDB en god mulighed, som du måske vil overveje.