Tutustu MongoDB-kyselyihin ja -toimintoihin tämän kätevän oppaan avulla.
MongoDB on yksi halutuimmista ja ihailluimmista NoSQL-tietokannoista ammatilliseen kehittymiseen. Sen joustavuus, skaalautuvuus ja kyky käsitellä suuria tietomääriä tekevät siitä parhaan valinnan nykyaikaisiin sovelluksiin. Jos haluat hallita MongoDB: n tavalliset kyselyt ja toiminnot, olet oikeassa paikassa.
Haluatpa sitten hakea ja käsitellä tietoja tehokkaasti, ottaa käyttöön vankkoja tietomalleja tai rakentaa reagoivia sovelluksiin, yleisten MongoDB-kyselyjen ja -toimintojen syvän ymmärryksen hankkiminen parantaa epäilemättä taidot.
1. Luo tai vaihda tietokantoja
Tietokannan luominen paikallisesti MongoDB Shellin kautta on yksinkertaista, varsinkin jos olet asettanut etäklusterin. Voit luoda uuden tietokannan MongoDB: ssä käyttää komento:
use db_name
Vaikka yllä oleva komento luo uuden tietokannan, voit käyttää sitä siirtyäksesi olemassa olevaan tietokantaan luomatta uutta tyhjästä.
2. Pudota tietokanta
Siirry ensin tietokantaan, jonka haluat pudottaa käyttämällä
käyttää komento kuten aiemmin. Pudota sitten tietokanta käyttämällä dropDatabase() komento:use db_name
db.dropDatabase()
3. Luo kokoelma
Luo kokoelma siirtymällä kohdetietokantaan. Käytä createCollection() avainsana uuden MongoDB-kokoelman tekemiseen:
db.createCollection("collection_name")
Korvata kokoelman_nimi valitsemasi kokoelman nimellä.
4. Lisää asiakirja kokoelmaan
Kun lähetät tietoja kokoelmaan, voit lisätä yksittäisen asiakirjan tai joukon asiakirjoja.
Yhden asiakirjan lisääminen:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
Voit myös käyttää yllä olevaa menetelmää lisätäksesi joukon asiakirjoja yhdellä tunnuksella:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Jos haluat lisätä useita asiakirjoja kerralla, joista jokaisella on erillinen tunnus, käytä insertMany avainsana:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Hanki kaikki asiakirjat kokoelmasta
Voit tehdä kyselyn kaikista kokoelman asiakirjoista käyttämällä löytö() avainsana:
db.collection_name.find()
Yllä oleva palauttaa kaikki määritetyn kokoelman asiakirjat:
Voit myös rajoittaa palautetut tiedot tiettyyn numeroon. Voit esimerkiksi käyttää seuraavaa komentoa saadaksesi vain kaksi ensimmäistä asiakirjaa:
db.collection_name.find().limit(2)
6. Suodata asiakirjat kokoelmassa
MongoDB: ssä on monia tapoja suodattaa asiakirjoja. Harkitse esimerkiksi seuraavia tietoja:
Jos haet vain tiettyä asiakirjan kenttää, käytä löytö menetelmä:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
Yllä oleva palauttaa kaikki asiakirjat, joiden arvo on Tykkää On Wordle. Se tulostaa vain nimet ja jättää huomiotta asiakirjan tunnuksen.
Voit myös suodattaa kokoelman numeerisen tekijän mukaan. Oletetaan, että haluat saada kaikkien yli 21-vuotiaiden käyttäjien nimet, käytä $gt operaattori:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
Tulos näyttää tältä:
Yritä vaihtaa löytö kanssa löydä yksi katsomaan mitä tapahtuu. On kuitenkin monia muita suodatusavainsanoja:
- $lt: Kaikki arvot pienempiä kuin määritetty arvo.
- $gte: Arvot, jotka ovat yhtä suuria tai suurempia kuin määritetty arvo.
- $lte: Arvot, jotka ovat pienempiä tai yhtä suuria kuin määritetty arvo.
- $ekv: Saa kaikki arvot yhtä suuret kuin määritetty arvo.
- $ne: Kaikki arvot eivät ole yhtä suuria kuin määritetty arvo.
- $in: Käytä tätä, kun teet kyselyn taulukon perusteella. Se saa kaikki arvot, jotka vastaavat mitä tahansa taulukon kohteita. The $nin avainsana toimii päinvastoin.
7. Lajittele kyselyt
Lajittelu auttaa järjestämään kyselyn tiettyyn järjestykseen. Voit lajitella laskevassa tai nousevassa järjestyksessä. Muista, että lajittelu edellyttää numeerista viittausta.
Esimerkiksi lajittelu nousevaan järjestykseen:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
Lajittele yllä oleva kysely laskevassa järjestyksessä korvaamalla "1" arvolla "-1".
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Päivitä asiakirja
MongoDB-päivitykset vaativat atomioperaattoreita määrittämään, kuinka haluat päivityksen tehtävän. Tässä on luettelo yleisesti käytetyistä atomioperaattoreista, jotka voit yhdistää päivityskyselyn kanssa:
- $set: Lisää uusi kenttä tai muuta olemassa olevaa kenttää.
- $push: Lisää uusi kohde taulukkoon. Yhdistä se kanssa $jokaista -operaattori lisää useita kohteita kerralla.
- $veto: Poista kohde taulukosta. Käytä sitä kanssa $in poistaa useita kohteita kerralla.
- $unset: Poista kenttä asiakirjasta.
Voit päivittää asiakirjan ja lisätä uuden kentän esimerkiksi seuraavasti:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
Yllä oleva päivittää määritetyn asiakirjan kuvan osoittamalla tavalla:
Sähköpostikentän poistaminen on helppoa $unset operaattori:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Harkitse seuraavia esimerkkitietoja:
Voit lisätä kohteen olemassa olevaan kohteita taulukkokenttä käyttäen $push operaattori:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Tässä tulos:
Käytä $jokaista operaattori lisätäksesi useita kohteita kerralla:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Tässä tulos:
Kuten mainittiin, $veto operaattori poistaa kohteen taulukosta:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Päivitetyt tiedot näyttävät tältä:
Sisällytä $in avainsana, jolla voit poistaa useita kohteita taulukosta kerralla:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Poista asiakirja tai kenttä
The deleteOne tai poista monta avainsana siirtää asiakirjan kokoelmasta roskakoriin. Käyttää deleteOne asiakirjan poistaminen tietyn kentän perusteella:
db.collection_name.deleteOne({"Name":"IDNoble"})
Jos haluat poistaa monia asiakirjoja, joilla on yhteiset avaimet, käytä poista monta sen sijaan. Alla oleva kysely poistaa kaikki asiakirjat, jotka sisältävät Shakki kuin heidän Tykkää.
db.collection.deleteMany({"Likes":"Chess"})
10. Indeksointitoiminto
Indeksointi parantaa kyselyn suorituskykyä virtaviivaistamalla MongoDB: n skannattavien asiakirjojen määrää. Usein on parasta luoda hakemisto kentille, joita haet useammin.
MongoDB-indeksointi on samanlaista kuin sinä käyttää indeksejä SQL-kyselyjen optimointiin. Esimerkiksi, jos haluat luoda nousevan indeksin Nimi ala:
db.collection.createIndex({"Name":1})
Indeksien luettelointi:
db.collection.getIndexes()
Yllä oleva on vain johdanto. On olemassa useita muita menetelmiä indeksin luominen MongoDB: ssä.
11. Aggregointi
Aggregointiputki, MapReducen parannettu versio, mahdollistaa monimutkaisten laskelmien suorittamisen ja tallentamisen MongoDB: n sisältä. Toisin kuin MapReduce, joka vaatii kartan ja pienennystoimintojen kirjoittamisen erikseen JavaScript-toiminnot, yhdistäminen on yksinkertaista ja käyttää vain sisäänrakennettuja MongoDB-menetelmiä.
Harkitse esimerkiksi seuraavia myyntitietoja:
MongoDB: n aggregaation avulla voit laskea ja tallentaa kunkin luokan myytyjen tuotteiden kokonaismäärän seuraavasti:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
Yllä oleva kysely palauttaa seuraavan:
Hallitse MongoDB-kyselyt
MongoDB tarjoaa monia kyselymenetelmiä, mukaan lukien ominaisuuksia, jotka parantavat kyselyn suorituskykyä. Ohjelmointikielestäsi riippumatta yllä olevat kyselyrakenteet ovat alkeellisia vuorovaikutuksessa MongoDB-tietokannan kanssa.
Perussyntakseissa voi kuitenkin olla eroja. Esimerkiksi kun jotkut ohjelmointikielet, kuten Python, tunnistavat käärmetapauksia, toiset, mukaan lukien JavaScript, käyttävät kamelin tapausta. Varmista, että tutkit, mikä toimii valitsemassasi tekniikassa.