Selle käepärase juhendi abil saate MongoDB päringute ja toimingutega tutvuda.

MongoDB on professionaalseks arenguks üks ihaldatumaid ja imetletumaid NoSQL-i andmebaase. Selle paindlikkus, mastaapsus ja võime käsitleda suuri andmemahtusid muudavad selle kaasaegsete rakenduste jaoks parimaks valikuks. Kui soovite hallata MongoDB tavapäringuid ja toiminguid, olete õiges kohas.

Olenemata sellest, kas soovite tõhusalt andmeid hankida ja nendega manipuleerida, rakendada tugevaid andmemudeleid või luua tundlik rakenduste jaoks täiustab MongoDB levinud päringute ja toimingute sügava mõistmise omandamine kahtlemata teie oskusi.

1. Andmebaaside loomine või vahetamine

Kohalik andmebaasi loomine MongoDB Shelli kaudu on lihtne, eriti kui olete seadistanud kaugklastri. Saate luua MongoDB-s uue andmebaasi, kasutades kasutada käsk:

use db_name

Kuigi ülaltoodud käsk loob uue andmebaasi, saate seda kasutada olemasolevale andmebaasile lülitumiseks ilma uut nullist loomata.

2. Drop Database

Esmalt lülituge andmebaasi, mille soovite tühistada, kasutades

instagram viewer
kasutada käsk nagu varem tehtud. Seejärel pukseerige andmebaas, kasutades nuppu dropDatabase() käsk:

use db_name
db.dropDatabase()

3. Looge kollektsioon

Kogu loomiseks lülituge sihtandmebaasi. Kasuta CreateCollection() Märksõna uue MongoDB kollektsiooni loomiseks:

db.createCollection("collection_name")

Asenda kollektsiooni_nimi valitud kollektsiooni nimega.

4. Sisestage dokument kogusse

Andmete kogusse saatmise ajal saate sisestada ühe dokumendi või dokumentide massiivi.

Ühe dokumendi sisestamiseks toimige järgmiselt.

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Ülaltoodud meetodit saate kasutada ka ühe ID-ga dokumentide massiivi sisestamiseks:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Kui soovite korraga sisestada palju dokumente, millel on eraldi ID, kasutage nuppu sisesta palju märksõna:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Hankige kogust kõik dokumendid

Saate päringuid teha kõigist kogust pärit dokumentidest, kasutades leia () märksõna:

db.collection_name.find()

Ülaltoodu tagastab kõik määratud kogus olevad dokumendid:

Samuti saate piirata tagastatavaid andmeid kindla arvuga. Näiteks saate kasutada järgmist käsku ainult kahe esimese dokumendi hankimiseks:

db.collection_name.find().limit(2)

6. Kogus olevate dokumentide filtreerimine

MongoDB-s dokumentide filtreerimiseks on palju võimalusi. Mõelge näiteks järgmistele andmetele:

Kui esitate päringu ainult konkreetsele väljale dokumendis, kasutage leida meetod:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Ülaltoodu tagastab kõik dokumendid, mille väärtus on Meeldib on Wordle. See väljastab ainult nimed ja ignoreerib dokumendi ID-d.

Saate kogumit filtreerida ka arvulise teguri järgi. Oletame, et soovite hankida kõigi üle 21-aastaste kasutajate nimed, kasutage $gt operaator:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

Väljund näeb välja selline:

Proovige asendada leida koos leia üks et näha, mis juhtub. Siiski on palju muid filtreerimismärksõnu:

  • $ lt: kõik väärtused väiksemad kui määratud.
  • $gte: määratud väärtusega võrdsed või sellest suuremad väärtused.
  • $lte: väärtused, mis on määratletud väärtusest väiksemad või sellega võrdsed.
  • $ekv: hangib kõik määratud väärtusega võrdsed väärtused.
  • $ne: kõik väärtused ei võrdu määratud väärtusega.
  • $in: kasutage seda massiivi põhjal päringute tegemisel. See saab kõik väärtused, mis vastavad massiivi üksustele. The $nin märksõna teeb vastupidist.

7. Sorteeri päringud

Sorteerimine aitab korraldada päringu kindlas järjekorras. Saate sortida kahanevas või kasvavas järjekorras. Pidage meeles, et sorteerimiseks on vaja numbrilist viidet.

Näiteks kasvavas järjekorras sortimiseks:

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

Ülaltoodud päringu sortimiseks kahanevas järjekorras asendage "1" väärtusega "-1".

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Värskendage dokumenti

MongoDB värskendused nõuavad, et operaatorid määraksid, kuidas soovite värskendust teha. Siin on loend sagedamini kasutatavatest aatomioperaatoritest, mida saate värskenduspäringuga siduda:

  • $set: lisage uus väli või muutke olemasolevat välja.
  • $push: uue üksuse lisamine massiivi. Siduge see seadmega $igaüks mitme üksuse korraga sisestamiseks.
  • $tõmmake: üksuse eemaldamine massiivist. Kasutage seda koos $in paljude esemete eemaldamiseks korraga.
  • $ unset: eemaldage dokumendist väli.

Dokumendi värskendamiseks ja uue välja lisamiseks tehke näiteks järgmist.

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Ülaltoodud värskendab määratud dokumenti, nagu näidatud:

Meilivälja eemaldamine on lihtne $ unset operaator:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Mõelge järgmistele näidisandmetele:

Saate lisada üksuse olemasolevasse esemed massiivivälja kasutades $push operaator:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Siin on väljund:

Kasuta $igaüks operaator mitme üksuse korraga sisestamiseks:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Siin on väljund:

Nagu mainitud, $tõmmake operaator eemaldab massiivist üksuse:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

Värskendatud andmed näevad välja järgmised:

Kaasa $in Märksõna massiivi paljude üksuste eemaldamiseks korraga:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Kustutage dokument või väli

The Kustuta üks või kustuta palju Märksõna viib dokumendi kogust prügikasti. Kasutage Kustuta üks dokumendi eemaldamiseks määratud välja alusel:

db.collection_name.deleteOne({"Name":"IDNoble"})

Kui soovite kustutada palju ühiste võtmetega dokumente, kasutage kustuta palju selle asemel. Allolev päring kustutab kõik dokumendid, mis sisaldavad Male nagu nende Meeldib.

db.collection.deleteMany({"Likes":"Chess"})

10. Indekseerimisoperatsioon

Indekseerimine parandab päringu jõudlust, lihtsustades dokumentide arvu, mida MongoDB peab skannima. Sageli on kõige parem luua register väljadele, mida sagedamini küsite.

MongoDB indekseerimine sarnaneb teiega kasutage SQL-päringute optimeerimiseks indekseid. Näiteks kasvava indeksi loomiseks Nimi väli:

db.collection.createIndex({"Name":1})

Oma indeksite loetlemiseks tehke järgmist.

db.collection.getIndexes()

Ülaltoodu on vaid preambul. Selleks on mitmeid muid meetodeid indeksi loomine MongoDB-s.

11. Liitmine

Koondamiskonveier, MapReduce'i täiustatud versioon, võimaldab teil MongoDB-s keerulisi arvutusi käitada ja salvestada. Erinevalt MapReduce'ist, mis nõuab kaardi ja vähendamise funktsioonide eraldi kirjutamist JavaScripti funktsioonid, koondamine on lihtne ja kasutab ainult sisseehitatud MongoDB meetodeid.

Mõelge näiteks järgmistele müügiandmetele:

MongoDB koondamise abil saate arvutada ja salvestada iga kategooria müüdud toodete koguarvu järgmiselt:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

Ülaltoodud päring tagastab järgmise:

Master MongoDB päringuid

MongoDB pakub palju päringumeetodeid, sealhulgas funktsioone päringu jõudluse parandamiseks. Olenemata teie programmeerimiskeelest on ülaltoodud päringustruktuurid MongoDB andmebaasiga suhtlemiseks algelised.

Põhisüntaksides võib siiski esineda lahknevusi. Näiteks kui mõned programmeerimiskeeled, nagu Python, tunnevad ära ussijuhtumeid, kasutavad teised, sealhulgas JavaScript, kaameli juhtumeid. Veenduge, et uurite, mis teie valitud tehnoloogia jaoks töötab.