Aan de slag met MongoDB in 10 minuten
door Navindu Jayatilake
MongoDB is een rijke document-georiënteerde NoSQL-database.
als u een complete beginner bent van NoSQL, raad ik u aan om snel te kijken naar mijn eerder gepubliceerde NoSQL-artikel.
vandaag wilde ik een aantal van de basis dingen over MongoDB commando ‘ s delen, zoals het opvragen, het filteren van gegevens, verwijderen, updaten en ga zo maar door.
Oké, genoeg gepraat, aan de slag!
configuratie ?
om met MongoDB te kunnen werken, moet u MongoDB eerst op uw computer installeren. Om dit te doen, bezoek de officiële Download center en download de versie voor uw specifieke besturingssysteem. Hier, Ik heb ramen gebruikt.
na het downloaden van MongoDB community server setup, ga je door een ‘volgende na volgende’ installatie proces. Eenmaal gedaan, ga dan naar de C-schijf waarin u MongoDB hebt geïnstalleerd. Ga naar programmabestanden en selecteer de MongoDB directory.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
In de bin-map vindt u een interessant aantal uitvoerbare bestanden.
- mongod
- mongo
laten we het hebben over deze twee bestanden.
mongod staat voor “Mongo Daemon”. mongod is een achtergrond proces gebruikt door MongoDB. Het belangrijkste doel van mongod is om alle MongoDB server taken te beheren. Bijvoorbeeld, het accepteren van verzoeken, reageren op client, en geheugenbeheer.
mongo is een commandoregel shell die kan communiceren met de client (bijvoorbeeld systeembeheerders en ontwikkelaars).
laten we nu eens kijken hoe we deze server operationeel kunnen krijgen. Om dat op Windows te doen, moet u eerst een paar mappen in uw C-schijf maken. Open uw opdrachtprompt in uw C-station en doe het volgende:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
Het doel van deze mappen is dat MongoDB een map nodig heeft om alle gegevens op te slaan. MongoDB ’s standaard data directory pad is /data/db
op het station. Daarom is het noodzakelijk dat we deze directory ‘ s zo aanbieden.
Als u de MongoDB server start zonder die mappen, zult u waarschijnlijk deze volgende fout zien:
na het aanmaken van deze twee bestanden gaat u opnieuw naar de bin-map in uw mongodb-map en opent u uw shell erin. Voer het volgende commando uit:
mongod
Voilà! Nu is onze MongoDB server up and running! ?
om met deze server te kunnen werken, hebben we een mediator nodig. Dus open een ander opdrachtvenster in de bind-map en voer het volgende commando uit:
mongo
na het uitvoeren van dit commando, navigeer naar de shell die we hebben uitgevoerd mongod commando (dat is onze server). Je ziet een ‘verbinding geaccepteerd’ bericht aan het einde. Dat betekent dat onze installatie en configuratie succesvol is!
voer gewoon uit in de mongo-shell:
db
instellen omgevingsvariabelen
om tijd te besparen kunt u uw omgevingsvariabelen instellen. In Windows wordt dit gedaan door de onderstaande menu ’s te volgen:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
kopieer gewoon het pad van onze bin map en druk op OK! In mijn geval is het C:\Program Files\MongoDB\Server\4.0\bin
nu ben je helemaal klaar!
werken met MongoDB
Er is een aantal GUI ‘ s (Graphical User Interface) om te werken met MongoDB server zoals MongoDB Compass, Studio 3T en ga zo maar door.
ze bieden een grafische interface zodat u eenvoudig met uw database kunt werken en queries kunt uitvoeren in plaats van een shell te gebruiken en queries handmatig te typen.
maar in dit artikel zullen we de opdrachtprompt gebruiken om ons werk te doen.
nu is het tijd voor ons om te duiken in MongoDB commando ‘ s die u zullen helpen om te gebruiken met uw toekomstige projecten.
- Open uw opdrachtprompt en typ
mongod
om de MongoDB-server te starten.
2. Open een andere shell en typ mongo
om verbinding te maken met MongoDB databaseserver.
1. Het vinden van de huidige database waarin u zich bevindt
db
Dit commando toont de huidige database waarin u zich bevindt. test
is de initiële database die standaard wordt geleverd.
2. Lijst van databases
show databases
Ik heb momenteel vier databases. Deze zijn: CrudDB
admin
config
en local
.
3. Ga naar een bepaalde database
use <your_db_name>
Hier ben ik verhuisd naar de local
database. U kunt dit controleren als u het commando db
probeert om de huidige databasenaam uit te printen.
4. Het aanmaken van een Database
met RDBMS (Relational Database Management Systems) hebben we Databases, tabellen, rijen en kolommen.
maar in NoSQL-databases, zoals MongoDB, worden gegevens opgeslagen in BSON-formaat (een binaire versie van JSON). Ze worden opgeslagen in structuren genaamd “collecties”.
in SQL-databases zijn deze vergelijkbaar met tabellen.
Oke, laten we praten over hoe we een database maken in de mongo shell.
use <your_db_name>
wacht, we hadden dit commando eerder! Waarom gebruik ik het weer?!
in MongoDB server, als uw database al aanwezig is, zal het gebruik van dat commando in uw database navigeren.
maar als de database nog niet aanwezig is, dan zal de MongoDB server de database voor u aanmaken. Dan, het zal navigeren in het.
na het aanmaken van een nieuwe database zal het commando show database
uw nieuw aangemaakte database niet tonen. Dit is omdat, totdat het enige gegevens (documenten) in het, het gaat niet te zien in uw db lijst.
5. Een verzameling aanmaken
navigeer in uw nieuw aangemaakte database met hetuse
Commando.
eigenlijk zijn er twee manieren om een verzameling aan te maken. Laten we beide zien.
een manier is om gegevens in de verzameling in te voegen:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
Dit maakt uw verzameling aan myCollection
zelfs als de verzameling niet bestaat. Dan zal het een document invoegen met name
en age
. Dit zijn niet-afgetopte collecties.
de tweede manier wordt hieronder getoond:
2.1 Een niet-afgetopte verzameling aanmaken
db.createCollection("myCollection")
2.2 een afgetopte verzameling aanmaken
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
op deze manier maakt u een verzameling aan zonder gegevens in te voegen.
een “afgetopte collectie” heeft een maximum aantal documenten dat overvolle documenten voorkomt.
in dit voorbeeld heb ik capping ingeschakeld, door de waarde in te stellen op true
.
de size : 2
betekent een limiet van twee megabytes, en max: 2
stelt het maximum aantal documenten in op twee.
Als u nu probeert meer dan twee documenten in te voegen aan mySecondCollection
en het find
commando gebruikt (waarover we het binnenkort zullen hebben), zult u alleen de meest recent ingevoegde documenten zien. Houd er rekening mee dat dit niet betekent dat het allereerste document is verwijderd — het wordt gewoon niet weergegeven.
6. Data invoegen
We kunnen gegevens invoegen in een nieuwe collectie, of in een collectie die al eerder is gemaakt.
Er zijn drie methoden om gegevens in te voegen.
-
insertOne()
wordt gebruikt om slechts één document in te voegen. -
insertMany()
wordt gebruikt om meer dan één document in te voegen. -
insert()
wordt gebruikt om zoveel documenten in te voegen als u wilt.
hieronder zijn enkele voorbeelden:
- insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
- insertMany()
db.myCollection.insertMany()
De insert()
methode is vergelijkbaar met de insertMany()
methode.
merk ook op dat we een nieuwe eigenschap hebben ingevoegd met de naam location
op het document voor John Doe
. Dus als je find
gebruikt, dan zie je alleen voor john doe
de eigenschap location
is bijgevoegd.
dit kan een voordeel zijn als het gaat om NoSQL databases zoals MongoDB. Het zorgt voor schaalbaarheid.
7. Gegevens opvragen
zo kunt u alle gegevens uit een verzameling opvragen:
db.myCollection.find()
indien u wilt om deze gegevens op een schonere manier te zien, voeg je gewoon .pretty()
toe aan het einde ervan. Dit toont het document in mooi afgedrukt JSON-formaat.
db.myCollection.find().pretty()
Wait…In deze voorbeelden heb je net iets gemerkt als _id
? Hoe komt dat daar?
wanneer u een document invoegt, voegt MongoDB automatisch een_id
veld toe dat elk document uniek identificeert. Als je niet wilt dat het wordt weergegeven, voer dan gewoon het volgende commando uit
db.myCollection.find({}, _id: 0).pretty()
vervolgens zullen we kijken naar het filteren van gegevens.
als u een bepaald document wilt weergeven, kunt u een enkel detail van het document opgeven dat u wilt weergeven.
db.myCollection.find( { name: "john" })
stel dat u alleen personen wilt weergeven die jonger zijn dan 25 jaar. U kunt $lt
gebruiken om hiervoor te filteren.
db.myCollection.find( { age : {$lt : 25} })
evenzo staat $gt
voor groter dan, $lte
is “kleiner dan of gelijk aan”, $gte
is “groter dan of gelijk aan” en $ne
is “niet gelijk”.
8. Documenten bijwerken
stel dat u iemands adres of leeftijd wilt bijwerken, hoe zou u dat kunnen doen? Nou, zie het volgende voorbeeld:
db.myCollection.update({age : 20}, {$set: {age: 23}})
het eerste argument is het veld van welk document u wilt bijwerken. Hier specificeer ik age
voor de eenvoud. In de productieomgeving kunt u iets als het veld _id
gebruiken.
Het is altijd beter om iets als _id
te gebruiken om een unieke rij bij te werken. Dit komt omdat meerdere velden dezelfde age
en name
kunnen hebben. Als u daarom een enkele rij bijwerkt, heeft dit invloed op alle rijen met dezelfde naam en leeftijd.
Als u een document op deze manier bijwerkt met een nieuwe eigenschap, laten we zeggen location
bijvoorbeeld, zal het document worden bijgewerkt met de nieuwe attribuut. En als u een find
doet, dan zal het resultaat zijn:
Als u een eigenschap uit een enkel document wilt verwijderen, kunt u zoiets als dit doen (laten we zeggen dat u wilt dat age
weg is):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Het verwijderen van een document
zoals ik al eerder zei, moet u bij het bijwerken of verwijderen van een document alleen de _id
opgeven, niet alleen name
age
location
.
db.myCollection.remove({name: "navindu"});
10. Het verwijderen van een verzameling
db.myCollection.remove({});
Opmerking: Dit is niet gelijk aan de methode drop()
. Het verschil is drop()
wordt gebruikt om alle documenten in een verzameling te verwijderen, maar de remove()
methode wordt gebruikt om alle documenten samen met de verzameling zelf te verwijderen.
logische operatoren
MongoDB biedt logische operatoren. De afbeelding hieronder vat de verschillende soorten logische operatoren samen.
laten we zeggen dat u mensen wilt weergeven van wie de leeftijd kleiner is dan 25, en ook van wie de locatie Colombo is. Wat kunnen we doen?
We kunnen de $and
operator gebruiken!
db.myCollection.find({$and:});
Last but not least, laten we het hebben over aggregatie.
Aggregatie
een snelle herinnering aan wat we geleerd hebben over aggregatiefuncties in SQL-databases:
simpel gezegd, aggregatie groepeert waarden uit meerdere documenten en vat ze op een of andere manier samen.
stel je voor dat we mannelijke en vrouwelijke studenten hadden in een recordBook
collectie en we willen een totaal aantal van elk van hen. Om de som van mannen en vrouwen te krijgen, kunnen we de $group
aggregaatfunctie gebruiken.
db.recordBook.aggregate();
Wrapping up
So, we hebben de basisprincipes van MongoDB besproken die u nodig zou kunnen hebben in de toekomst om een applicatie te bouwen. Ik hoop dat je genoten van dit artikel-bedankt voor het lezen!