MongoDB er en NoSQL-database. Under NoSQL paraply sætter vi alle de databaser, der ikke bruger SQL-sproget til at forespørge dataene.
Nøglekarakteristika for MongoDB
MongoDB er en meget JavaScript-venlig database. Det afslører en JavaScript API, vi kan bruge til at oprette databaser og samlinger af objekter (kaldet dokumenter ).
Det er skemaløst , hvilket betyder, at du ikke behøver at foruddefinere en struktur for dataene, før du gemmer dem.
I MongoDB kan du gemme ethvert objekt uden at skulle bekymre dig om de særlige felter, der komponerer dette objekt, og hvordan du gemmer dem. Du beder MongoDB om at gemme det objekt.
Data gemmes i et format, der ligner JSON, men forbedret for at tillade lagring af mere end blot grundlæggende datatyper.
Installation
Lad os gå videre og installere MongoDB. Du kan bruge en af de mange cloud-udbydere, der tilbyder adgang til en MongoDB-instans, men for læringens skyld installerer vi det selv.
Jeg bruger en Mac, så installationsinstruktionerne i denne vejledning henviser til det pågældende operativsystem.
Åbn terminalen og kør:
brew tap mongodb/brew
brew install mongodb-community
Det er det.
Instruktionerne var ikke for lange eller komplicerede, forudsat at du ved, hvordan man bruger terminalen, og hvordan man installerer Homebrew.
Installationen fortæller os dette:
To have launchd start mongodb now and restart at login:
brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
Du kan vælge enten at starte MongoDB én gang og have den til at køre for evigt som en baggrundstjeneste på din computer (det jeg foretrækker), eller du kan køre den lige når du har brug for det, ved at køre den sidste kommando.
Standardkonfigurationen for MongoDB er denne:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
Logfiler gemmes i /usr/local/var/log/mongodb/mongo.log
og databasen er gemt i /usr/local/var/mongodb
.
Som standard er der ingen adgangskontrol, alle kan læse og skrive til databasen.
Mongoskallen
Den bedste måde at eksperimentere med MongoDB og begynde at interagere med det er ved at køre mongo
program, som starter MongoDB-skallen.
Du kan nu indtaste enhver kommando, som Mongo forstår.
Opret en database
Når du starter, opretter Mongo en database kaldet test
. Kør db
i skallen for at fortælle dig navnet på den aktive database
For at ændre databasen skal du bare skrive use newname
og newname
databasen vil blive oprettet med det samme, og shellen skifter til at bruge den.
Brug show databases
for at liste de tilgængelige databaser:
Som du kan se, er something
databasen er ikke opført, bare fordi der endnu ikke er nogen samling i den. Lad os oprette en.
Samlinger
I MongoDB, en samling svarer til en SQL-databasetabel.
Du opretter en samling på den aktuelle database ved at bruge db.createCollection()
kommando. Det første argument er databasenavnet, og du kan sende et option-objekt som en anden parameter.
Når du har gjort det, show databases
vil vise den nye database og show collections
viser samlingen.
Du kan også oprette en ny samling ved at bruge den som en egenskab for db
objekt og kalder insert()
for at tilføje et objekt til samlingen:
db.dogs.insert({ name: 'Roger' })
Angivelse af objekter i en samling
For at vise de objekter, der er tilføjet til en samling, skal du bruge find()
metode:
Som du kan se, er der en ekstra _id
ejendom for en ordens skyld, vi tilføjede. Det genereres automatisk for os af MongoDB.
Tilføj nu flere hunde:
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
Kalder db.dogs.find()
vil give os alle posterne, mens vi kan sende en parameter til at filtrere og hente en specifik post, for eksempel med db.dogs.find({name: 'Roger'})
:
find()
metode returnerer en markør, du skal gentage.
Der er en anden metode, som er praktisk, når du ved, at du kun får én post, som er findOne()
, og det bruges på samme måde. Hvis flere poster matcher en forespørgsel, vil den kun returnere den første.
Opdatering af poster
For at opdatere en post kan du bruge update()
metode på en samling:
Fjernelse af poster
Du kan fjerne en post ved at kalde remove()
metode på en samling ved at sende et objekt for at hjælpe med at identificere det:
For at fjerne alle poster fra en samling skal du sende et tomt objekt:
db.dogs.remove({})