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:

proberen de mongodb-server te starten zonder \data\db-mappen

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
aanvankelijk heeft u een db genaamd ’test’

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.

  1. 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: CrudDBadminconfig 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.

SQL voorwaarden en NoSQL voorwaarden door Victoria Malaya

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.

manieren waarop gegevens kunnen worden opgeslagen in een JSON

Er zijn drie methoden om gegevens in te voegen.

  1. insertOne() wordt gebruikt om slechts één document in te voegen.
  2. insertMany() wordt gebruikt om meer dan één document in te voegen.
  3. 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.

met succes ingevoegde gegevens

7. Gegevens opvragen

zo kunt u alle gegevens uit een verzameling opvragen:

db.myCollection.find()

result

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()
result

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" })
result

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 namekunnen hebben. Als u daarom een enkele rij bijwerkt, heeft dit invloed op alle rijen met dezelfde naam en leeftijd.

result

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:

result

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 nameagelocation.

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.

referentie: MongoDB manual

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:

aggregatiefuncties in SQL-databases. ref: Tutorial Gateway

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();
result

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!



Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.