Naudodami šį patogų vadovą sužinokite apie MongoDB užklausas ir operacijas.
MongoDB yra viena geidžiamiausių ir labiausiai vertinamų NoSQL duomenų bazių, skirtų profesiniam tobulėjimui. Dėl lankstumo, mastelio ir galimybės apdoroti didelius duomenų kiekius jis yra geriausias pasirinkimas šiuolaikinėms programoms. Jei norite įvaldyti įprastas MongoDB užklausas ir operacijas, esate tinkamoje vietoje.
Nesvarbu, ar norite efektyviai nuskaityti ir valdyti duomenis, įdiegti patikimus duomenų modelius ar sukurti reaguojančius programas, giliai išmanydami įprastas MongoDB užklausas ir operacijas, neabejotinai pagerinsite įgūdžių.
1. Sukurkite arba perjunkite duomenų bazes
Duomenų bazės kūrimas vietoje naudojant „MongoDB Shell“ yra paprastas, ypač jei nustatėte nuotolinį klasterį. Galite sukurti naują duomenų bazę MongoDB naudodami naudoti komanda:
use db_name
Nors aukščiau pateikta komanda sukuria naują duomenų bazę, galite ją naudoti norėdami pereiti prie esamos duomenų bazės, nekurdami naujos nuo nulio.
2. Išmeskite duomenų bazę
Pirmiausia perjunkite į duomenų bazę, kurią norite atsisakyti naudodami naudoti komandą, kaip ir anksčiau. Tada išmeskite duomenų bazę naudodami dropDatabase () komanda:
use db_name
db.dropDatabase()
3. Sukurti Kolekciją
Norėdami sukurti kolekciją, perjunkite į tikslinę duomenų bazę. Naudoti CreateCollection() raktinis žodis, norint sukurti naują MongoDB kolekciją:
db.createCollection("collection_name")
Pakeiskite kolekcijos_pavadinimas su pasirinktu kolekcijos pavadinimu.
4. Įdėkite dokumentą į kolekciją
Siųsdami duomenis į rinkinį, galite įterpti vieną dokumentą arba dokumentų masyvą.
Norėdami įterpti vieną dokumentą:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
Taip pat galite naudoti aukščiau pateiktą metodą, norėdami įterpti dokumentų masyvą su vienu ID:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Norėdami vienu metu įterpti daug dokumentų, kurių kiekvienas turi atskirą ID, naudokite Įterpti Daug raktažodis:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Gaukite visus dokumentus iš kolekcijos
Galite pateikti užklausą dėl visų dokumentų iš kolekcijos naudodami rasti () raktažodis:
db.collection_name.find()
Aukščiau pateikiami visi dokumentai nurodytoje kolekcijoje:
Taip pat galite apriboti grąžinamus duomenis iki tam tikro skaičiaus. Pavyzdžiui, galite naudoti šią komandą, kad gautumėte tik pirmuosius du dokumentus:
db.collection_name.find().limit(2)
6. Filtruoti kolekcijos dokumentus
Yra daug būdų, kaip filtruoti dokumentus MongoDB. Apsvarstykite, pavyzdžiui, šiuos duomenis:
Jei užklausą pateikiate tik konkretaus dokumento lauke, naudokite rasti metodas:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
Aukščiau pateikiami visi dokumentai, kurių vertė yra Patinka yra Wordle. Jis išveda tik pavadinimus ir nepaiso dokumento ID.
Taip pat galite filtruoti kolekciją pagal skaitinį koeficientą. Tarkime, kad norite gauti visų vyresnių nei 21 metų naudotojų vardus, naudokite $gt operatorius:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
Išvestis atrodo taip:
Pabandykite pakeisti rasti su rasti vieną pamatyti, kas atsitiks. Tačiau yra daug kitų filtravimo raktinių žodžių:
- $ lt: visos reikšmės mažesnės nei nurodyta.
- $gte: reikšmės, lygios arba didesnės nei nurodyta.
- $lte: reikšmės, kurios yra mažesnės arba lygios apibrėžtajai.
- $ ekv: Gaunamos visos reikšmės, lygios nurodytai.
- $ne: visos reikšmės nelygios nurodytai.
- $in: naudokite tai, kai pateikiate užklausą pagal masyvą. Jis gauna visas vertes, atitinkančias bet kurį masyvo elementą. The $nin raktinis žodis veikia priešingai.
7. Rūšiuoti užklausas
Rūšiavimas padeda sutvarkyti užklausą tam tikra tvarka. Galite rūšiuoti mažėjančia arba didėjančia tvarka. Atminkite, kad norint rūšiuoti reikia skaitinės nuorodos.
Pavyzdžiui, norėdami rūšiuoti didėjančia tvarka:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
Norėdami surūšiuoti aukščiau pateiktą užklausą mažėjimo tvarka, pakeiskite „1“ į „-1“.
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Atnaujinkite dokumentą
„MongoDB“ naujinimams reikia, kad atominiai operatoriai nurodytų, kaip norite atnaujinti. Čia pateikiamas dažniausiai naudojamų atominių operatorių, kuriuos galite susieti su atnaujinimo užklausa, sąrašas:
- $set: pridėkite naują lauką arba pakeiskite esamą lauką.
- $stumti: į masyvą įterpkite naują elementą. Suporuokite jį su $kiekvienas operatorius, kad vienu metu įterptų daug elementų.
- $traukti: pašalinkite elementą iš masyvo. Naudokite jį su $in vienu metu pašalinti daug elementų.
- $nustatytas: pašalinkite lauką iš dokumento.
Norėdami atnaujinti dokumentą ir pridėti naują lauką, pavyzdžiui:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
Aukščiau atnaujinamas nurodytas dokumentas, kaip parodyta:
Pašalinti el. pašto lauką paprasta naudojant $nustatytas operatorius:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Apsvarstykite šiuos duomenų pavyzdžius:
Galite įterpti elementą į esamą daiktų masyvo lauką naudodami $stumti operatorius:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Štai išvestis:
Naudoti $kiekvienas operatorius, kad įterptų daug elementų vienu metu:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Štai išvestis:
Kaip minėta, $traukti operatorius pašalina elementą iš masyvo:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Atnaujinti duomenys atrodo taip:
Įtraukti $in raktinis žodis, norint vienu metu pašalinti daug elementų iš masyvo:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Ištrinkite dokumentą arba lauką
The ištrinti vieną arba ištrinti Daug raktinis žodis perkelia dokumentą iš kolekcijos į šiukšliadėžę. Naudokite ištrinti vieną jei norite pašalinti dokumentą pagal nurodytą lauką:
db.collection_name.deleteOne({"Name":"IDNoble"})
Jei norite ištrinti daug dokumentų su bendrais raktais, naudokite ištrinti Daug vietoj to. Toliau pateikta užklausa ištrina visus dokumentus, kuriuose yra Šachmatai kaip jų Patinka.
db.collection.deleteMany({"Likes":"Chess"})
10. Indeksavimo operacija
Indeksavimas pagerina užklausos našumą supaprastindamas dokumentų, kuriuos MongoDB turi nuskaityti, skaičių. Dažnai geriausia kurti rodyklę laukuose, kurių užklausa atliekama dažniau.
MongoDB indeksavimas yra panašus į jūsų SQL užklausoms optimizuoti naudokite indeksus. Pavyzdžiui, norėdami sukurti didėjantį indeksą vardas laukas:
db.collection.createIndex({"Name":1})
Norėdami išvardyti savo indeksus:
db.collection.getIndexes()
Aukščiau yra tik preambulė. Yra keletas kitų būdų sukurti indeksą MongoDB.
11. Sujungimas
Agregavimo dujotiekis, patobulinta MapReduce versija, leidžia vykdyti ir saugoti sudėtingus skaičiavimus iš MongoDB. Skirtingai nuo MapReduce, kuriai žemėlapį ir mažinimo funkcijas reikia rašyti atskirai JavaScript funkcijos, agregavimas yra paprastas ir naudoja tik integruotus MongoDB metodus.
Apsvarstykite, pavyzdžiui, šiuos pardavimo duomenis:
Naudodami MongoDB agregaciją, galite apskaičiuoti ir saugoti bendrą kiekvienos kategorijos parduotų produktų skaičių taip:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
Aukščiau pateikta užklausa pateikia šiuos duomenis:
Pagrindinės MongoDB užklausos
MongoDB siūlo daugybę užklausų metodų, įskaitant funkcijas, skirtas pagerinti užklausos našumą. Nepriklausomai nuo jūsų programavimo kalbos, aukščiau pateiktos užklausų struktūros yra elementarios sąveikai su MongoDB duomenų baze.
Tačiau gali būti tam tikrų pagrindinių sintaksių neatitikimų. Pavyzdžiui, kai kurios programavimo kalbos, pvz., Python, atpažįsta gyvatės atvejus, kitos, įskaitant JavaScript, naudoja kupranugario dėklą. Įsitikinkite, kad ištyrėte, kas tinka jūsų pasirinktai technologijai.