MongoDB: n käyttö aloitetaan 10 minuutissa
by Navindu Jayatilake
MongoDB on rikas dokumenttipainotteinen NoSQL-tietokanta.
Jos olet täysin aloittelija NoSQL: lle, suosittelen vilkaisemaan pikaisesti aiemmin julkaistua NoSQL-artikkeliani.
Tänään halusin jakaa joitakin MongoDB-komentojen perusjuttuja, kuten kyselyä, datan suodattamista, poistamista, päivittämistä ja niin edelleen.
okei, puheet sikseen, ruvetaan hommiin!
kokoonpano ?
toimiaksesi MongoDB: n kanssa sinun on ensin asennettava MongoDB tietokoneellesi. Voit tehdä tämän vierailemalla virallisessa latauskeskuksessa ja lataamalla version omalle KÄYTTÖJÄRJESTELMÄLLESI. Olen käyttänyt ikkunoita.
kun olet ladannut MongoDB community server setup-ohjelman, käyt läpi ”next after next” – asennusprosessin. Kun valmis, pään yli C asema, johon olet asentanut MongoDB. Mene ohjelmatiedostot ja valitse MongoDB Hakemisto.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
bin-hakemistosta löytyy mielenkiintoinen pari suoritettavaa tiedostoa.
- mongod
- mongo
puhutaan näistä kahdesta kansiosta.
mongod tulee sanoista ”Mongo Daemon”. mongod on mongodbin käyttämä taustaprosessi. Mongodin päätarkoitus on hallita kaikkia MongoDB-palvelintehtäviä. Esimerkiksi pyyntöjen hyväksyminen, asiakkaalle vastaaminen ja muistin hallinta.
mongo on komentorivin komentotulkki, joka voi olla vuorovaikutuksessa asiakkaan (esimerkiksi järjestelmän ylläpitäjien ja kehittäjien) kanssa.
nyt katsotaan, miten saamme tämän palvelimen toimimaan. Voit tehdä sen Windowsissa, ensin sinun täytyy luoda pari hakemistoa C-asemaan. Avaa komentokehote C-aseman sisällä ja tee seuraavasti:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
näiden hakemistojen tarkoitus on MongoDB vaatii kansion kaiken tiedon tallentamiseen. MongoDB: n oletustietohakemiston polku on /data/db
levyllä. Siksi on välttämätöntä, että annamme nämä hakemistot näin.
Jos käynnistät MongoDB-palvelimen ilman näitä hakemistoja, näet todennäköisesti tämän seuraavan virheen:
luotuaan nämä kaksi tiedostoa suuntaa uudelleen MongoDB-hakemistossasi olevaan bin-kansioon ja avaa komentotulkkisi sisällä se. Suorita seuraava komento:
mongod
Voilà! Nyt MongoDB-palvelimemme on toiminnassa! ?
tämän palvelimen kanssa toimimiseen tarvitaan sovittelija. Avaa siis toinen komentoikkuna bind-kansion sisällä ja suorita seuraava komento:
mongo
tämän komennon suorittamisen jälkeen siirry komentotulkkiin, jolla suoritimme mongod-komennon (joka on palvelimemme). Näet ’yhteys hyväksytty’ viestin lopussa. Tämä tarkoittaa, että asennus ja kokoonpano on onnistunut!
vain yksinkertaisesti juokse mongon kuoressa:
db
ympäristömuuttujien asettaminen
ajan säästämiseksi voit määrittää ympäristömuuttujasi. Windowsissa tämä tapahtuu alla olevia valikkoja seuraamalla:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
yksinkertaisesti kopioi bin-kansiomme polku ja paina OK! Minun tapauksessani se on C:\Program Files\MongoDB\Server\4.0\bin
nyt olet valmis!
työskentely MongoDB: n kanssa
MongoDB-palvelimen kanssa toimii joukko Guita (graafinen käyttöliittymä), kuten MongoDB Compass, Studio 3t ja niin edelleen.
ne tarjoavat graafisen käyttöliittymän, joten voit helposti työskennellä tietokantasi kanssa ja suorittaa kyselyjä sen sijaan, että käyttäisit komentotulkkia ja kirjoittaisit kyselyt manuaalisesti.
mutta tässä artikkelissa käytämme komentorivi tehdä työmme.
nyt on aika sukeltaa MongoDB-komentoihin, jotka auttavat sinua käyttämään tulevia projektejasi.
- avaa komentokehote ja kirjoita
mongod
käynnistääksesi MongoDB-palvelimen.
2. Avaa toinen tulkki ja kirjoita mongo
muodostaaksesi yhteyden MongoDB-tietokantapalvelimeen.
1. Etsi nykyinen tietokanta, jossa olet
db
Tämä komento näyttää nykyisen tietokannan, jossa olet. test
on oletusarvon mukainen alkuperäinen tietokanta.
2. Tietokantojen listaaminen
show databases
minulla on tällä hetkellä neljä tietokantaa. Ne ovat: CrudDB
admin
config
ja local
.
3. Mene tiettyyn tietokantaan
use <your_db_name>
täällä olen siirtynyt local
tietokanta. Voit tarkistaa tämän, jos yrität komennolla db
tulostaa nykyisen tietokannan nimen.
4. Tietokannan luominen
kanssa RDBMS (Relational Database Management Systems) meillä on tietokantoja, taulukoita, rivejä ja sarakkeita.
mutta NoSQL-tietokannoissa, kuten MongoDB: ssä, data on tallennettu BSON-muodossa (binääriversio JSON: stä). Niitä säilytetään rakenteissa, joita kutsutaan ”kokoelmiksi”.
SQL-tietokannoissa nämä muistuttavat taulukoita.
alright, puhutaan siitä, miten luomme tietokannan mongon kuoreen.
use <your_db_name>
odota, meillä oli tämä komento ennen! Miksi käytän sitä taas?!
MongoDB-palvelimessa, jos tietokanta on jo olemassa, tämän komennon avulla navigoidaan tietokantaan.
mutta jos tietokantaa ei ole jo olemassa, MongoDB-palvelin luo tietokannan sinulle. Sitten se navigoi siihen.
uuden tietokannan luomisen jälkeen show database
komento ei näytä uutta tietokantaa. Tämä johtuu siitä, kunnes se on mitään tietoja (asiakirjoja) siinä, se ei näy db-luettelossa.
5. Luodaan kokoelma
siirry uuteen tietokantaan komennolla use
.
oikeastaan on kaksi tapaa luoda kokoelma. Näytä molemmat.
yksi tapa on lisätä tietoa kokoelmaan:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
tämä luo kokoelmasi myCollection
vaikka kokoelmaa ei olisikaan. Tämän jälkeen se lisää asiakirjan, jossa name
ja age
. Nämä ovat rajaamattomia kokoelmia.
toinen tapa on esitetty alla:
2.1 Rajaamattoman kokoelman luominen
db.createCollection("myCollection")
2.2 rajatun kokoelman luominen
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
näin luot kokoelman lisäämättä tietoja.
”rajatulla kokoelmalla” on suurin asiakirjamäärä, joka estää asiakirjojen tulvimisen.
tässä esimerkissä olen mahdollistanut ylärajan asettamalla sen arvoksi true
.
tarkoittaa kahden megatavun rajaa, ja
asettaa dokumenttien enimmäismääräksi kaksi.
nyt jos yrität lisätä enemmän kuin kaksi dokumenttia mySecondCollection
ja käytät find
– komentoa (josta puhumme pian), näet vain viimeisimmät lisätyt dokumentit. Muista tämä ei tarkoita, että ensimmäinen asiakirja on poistettu-se ei vain näy.
6. Lisäämällä tietoa
voimme lisätä tietoa uuteen kokoelmaan tai aiemmin luotuun kokoelmaan.
on olemassa kolme tapaa lisätä tietoja.
-
insertOne()
käytetään vain yhden asiakirjan liittämiseen. -
insertMany()
käytetään useamman kuin yhden asiakirjan liittämiseen. -
insert()
käytetään lisäämään dokumentteja niin paljon kuin haluat.
alla muutamia esimerkkejä:
- insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
db.myCollection.insertMany()
insert()
menetelmä on samanlainen kuininsertMany()
method.
myös huomaa, että olemme lisänneet location
asiakirjaan John Doe
. Joten jos käytät find
, näet vain john doe
location
ominaisuus on liitteenä.
tästä voi olla etua, kun puhutaan NoSQL-tietokannoista, kuten MongoDB: stä. Se mahdollistaa skaalautuvuuden.
7. Kyselytiedot
Näin voit tiedustella kaikki tiedot kokoelmasta:
db.myCollection.find()
Jos haluat nähdä nämä tiedot puhtaampana, lisää .pretty()
sen loppuun. Tämä näyttää asiakirjan melko painettu JSON muodossa.
db.myCollection.find().pretty()
Wait…In nämä esimerkit huomasitko juuri jotain _id
? Miten se sinne joutui?
aina kun lisäät asiakirjan, MongoDB lisää automaattisesti _id
kentän, joka yksilöi jokaisen asiakirjan. Jos et halua sen näyttävän, suorita seuraava komento
db.myCollection.find({}, _id: 0).pretty()
seuraavaksi, katsomme suodatustietoja.
Jos haluat näyttää tietyn asiakirjan, voit määrittää yksittäisen yksityiskohdan asiakirjasta, jonka haluat näytettäväksi.
db.myCollection.find( { name: "john" })
sanotaan, että haluat näyttää vain henkilöt, joiden ikä on alle 25. Voit suodattaa tätä käyttämällä $lt
.
db.myCollection.find( { age : {$lt : 25} })
vastaavasti $gt
tarkoittaa suurempaa kuin, $lte
on ”pienempi tai yhtä suuri kuin”, $gte
on ”suurempi tai yhtä suuri” ja $ne
on ”ei yhtä suuri”.
8. Asiakirjojen päivittäminen
sanotaan, että haluat päivittää jonkun osoitteen tai iän, miten voisit tehdä sen? No, katso seuraava esimerkki:
db.myCollection.update({age : 20}, {$set: {age: 23}})
ensimmäinen argumentti on kenttä, jonka dokumenttia haluat päivittää. Tässä tarkennan age
yksinkertaisuuden vuoksi. Tuotantoympäristössä voisi käyttää jotain _id
– kenttää.
on aina parempi käyttää jotain _id
uniikin rivin päivittämiseen. Tämä johtuu siitä, että useilla kentillä voi olla sama age
ja name
. Siksi, Jos päivität yhden rivin, se vaikuttaa kaikkiin riveihin, joilla on sama nimi ja ikä.
Jos päivität asiakirjan tällä tavalla uudella ominaisuudella, sanotaan location
esimerkiksi, asiakirjaa päivitetään uudella attribuutilla. Ja jos tehdään find
, niin tulos on:
Jos haluat poistaa ominaisuuden yhdestä asiakirjasta, voit tehdä jotain tällaista (sanotaan, että haluat age
poissa):
9. Asiakirjan poistaminen
kuten aiemmin mainitsin, kun päivität tai poistat asiakirjan, sinun tarvitsee vain määrittää _id
ei vain name
age
location
.
db.myCollection.remove({name: "navindu"});
10. Poistamalla kokoelman
db.myCollection.remove({});
Huom, Tämä ei ole sama kuin drop()
menetelmä. Erona on drop()
käytetään poistamaan kaikki kokoelman sisällä olevat dokumentit, mutta remove()
– menetelmää käytetään poistamaan kaikki asiakirjat itse kokoelman mukana.
loogiset operaattorit
MongoDB tarjoaa loogisia operaattoreita. Alla olevassa kuvassa on yhteenveto loogisten operaattoreiden eri tyypeistä.
sanotaan, että haluat näyttää ihmiset, joiden ikä on alle 25, ja myös joiden sijainti on Colombo. Mitä voisimme tehdä?
voimme käyttää
db.myCollection.find({$and:});
viimeisenä mutta ei vähäisimpänä, puhutaan aggregaatiosta.
Aggregation
a quick reminder on what we learned about aggregation functions in SQL databases:
yksinkertaisesti sanottuna, kootaan ryhmät arvot useista dokumenteista ja tiivistetään ne jollakin tavalla.
kuvitelkaa, jos meillä olisi mies-ja naisopiskelijoita recordBook
kokoelmassa ja haluamme, että jokainen heistä lasketaan yhteen. Jotta saataisiin miesten ja naisten summa, voitaisiin käyttää $group
aggregaattifunktiota.
db.recordBook.aggregate();
paketointi
niin, olemme keskustelleet MongoDB: n perusteet, joita saatat tarvita tulevaisuudessa sovelluksen rakentamiseen. Toivottavasti pidit tästä kirjoituksesta-kiitos lukemisesta!