Upoznajte se s MongoDB upitima i operacijama uz pomoć ovog praktičnog vodiča.

MongoDB je jedna od najpoželjnijih i najcjenjenijih NoSQL baza podataka za profesionalni razvoj. Njegova fleksibilnost, skalabilnost i sposobnost rukovanja velikim količinama podataka čine ga vrhunskim izborom za moderne aplikacije. Ako želite svladati redovite MongoDB upite i operacije, na pravom ste mjestu.

Bilo da želite učinkovito dohvatiti i manipulirati podacima, implementirati robusne modele podataka ili izgraditi responzivne aplikacije, stjecanje dubokog razumijevanja uobičajenih MongoDB upita i operacija nedvojbeno će poboljšati vaše vještine.

1. Stvorite ili promijenite baze podataka

Stvaranje baze podataka lokalno putem MongoDB Shell-a jednostavno je, pogotovo ako ste postavili udaljeni klaster. Možete stvoriti novu bazu podataka u MongoDB s koristiti naredba:

use db_name

Dok gornja naredba stvara novu bazu podataka, možete je koristiti za prebacivanje na postojeću bazu podataka bez stvaranja nove od nule.

instagram viewer

2. Ispustite bazu podataka

Prvo se prebacite na bazu podataka koju želite ispustiti pomoću koristiti naredbu kao što je prethodno učinjeno. Zatim ispustite bazu podataka pomoću dropDatabase() naredba:

use db_name
db.dropDatabase()

3. Stvorite zbirku

Da biste stvorili zbirku, prebacite se na ciljnu bazu podataka. Koristiti stvoriti kolekciju() ključna riječ za izradu nove MongoDB kolekcije:

db.createCollection("collection_name")

Zamijeniti naziv_zbirke s odabranim nazivom zbirke.

4. Umetni dokument u zbirku

Dok šaljete podatke u zbirku, možete umetnuti jedan dokument ili niz dokumenata.

Za umetanje jednog dokumenta:

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

Također možete koristiti gornju metodu za umetanje niza dokumenata s jednim ID-om:

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

Za umetanje više dokumenata odjednom, od kojih svaki ima zasebne ID-ove, koristite umetnutiMnogo ključna riječ:

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

5. Dobijte sve dokumente iz zbirke

Možete tražiti sve dokumente iz zbirke pomoću pronaći() ključna riječ:

db.collection_name.find()

Gore navedeno vraća sve dokumente unutar navedene zbirke:

Također možete ograničiti vraćene podatke na određeni broj. Na primjer, možete koristiti sljedeću naredbu da dobijete samo prva dva dokumenta:

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

6. Filtrirajte dokumente u zbirci

Postoji mnogo načina za filtriranje dokumenata u MongoDB-u. Razmotrite, na primjer, sljedeće podatke:

Ako tražite samo određeno polje u dokumentu, koristite pronaći metoda:

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

Gore navedeno vraća sve dokumente u kojima je vrijednost sviđanja je Wordle. Ispisuje samo imena i zanemaruje ID dokumenta.

Također možete filtrirati zbirku prema numeričkom faktoru. Recimo da želite dobiti imena svih korisnika starijih od 21 godine, upotrijebite gt $ operater:

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

Izlaz izgleda ovako:

Pokušajte zamijeniti pronaći s findOne vidjeti što će se dogoditi. Međutim, postoje mnoge druge ključne riječi za filtriranje:

  • $lt: Sve vrijednosti manje od navedene.
  • $gte: Vrijednosti jednake ili veće od navedene.
  • $lte: Vrijednosti koje su manje ili jednake definiranoj.
  • $ekv: Dobiva sve vrijednosti jednake navedenoj.
  • $ne: Sve vrijednosti nisu jednake navedenoj.
  • $in: Koristite ovo kada postavljate upite na temelju polja. Dobiva sve vrijednosti koje odgovaraju bilo kojoj od stavki u nizu. The $nin ključna riječ radi suprotno.

7. Poredaj upite

Sortiranje pomaže u slaganju upita određenim redoslijedom. Možete poredati u silaznom ili uzlaznom redoslijedu. Imajte na umu da sortiranje zahtijeva numeričku referencu.

Na primjer, za sortiranje uzlaznim redoslijedom:

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

Da biste poredali gornji upit silaznim redoslijedom, zamijenite "1" s "-1."

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

8. Ažurirajte dokument

Ažuriranja MongoDB-a zahtijevaju atomske operatore da specificiraju kako želite da se ažuriranje izvrši. Ovdje je popis najčešće korištenih atomskih operatora koje možete upariti s upitom ažuriranja:

  • $set: Dodajte novo polje ili promijenite postojeće polje.
  • $gurnuti: Umetnite novu stavku u niz. Uparite ga s $svaki operator za umetanje više stavki odjednom.
  • $povuci: Uklonite stavku iz niza. Koristite ga sa $in za uklanjanje mnogih stavki odjednom.
  • $poništeno: Uklonite polje iz dokumenta.

Za ažuriranje dokumenta i dodavanje novog polja, na primjer:

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

Gore navedeno ažurira navedeni dokument kako je prikazano:

Uklanjanje polja e-pošte jednostavno je s $poništeno operater:

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

Razmotrite sljedeće uzorke podataka:

Možete umetnuti stavku u postojeću stavke polje niza pomoću $gurnuti operater:

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

Evo rezultata:

Koristiti $svaki operator za umetanje više stavki odjednom:

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

Evo rezultata:

Kao što je spomenuto, $povuci operator uklanja stavku iz niza:

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

Ažurirani podaci izgledaju ovako:

Uključite $in ključna riječ za uklanjanje mnogih stavki u nizu odjednom:

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

9. Brisanje dokumenta ili polja

The izbrisatiJedan ili izbrisatiMnogo ključna riječ uklanja dokument iz zbirke. Koristiti izbrisatiJedan za uklanjanje dokumenta na temelju navedenog polja:

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

Ako želite izbrisati mnogo dokumenata sa zajedničkim ključevima, koristite izbrisatiMnogo umjesto toga. Upit u nastavku briše sve dokumente koji sadrže Šah kao njihov sviđanja.

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

10. Operacija indeksiranja

Indeksiranje poboljšava izvedbu upita pojednostavljivanjem broja dokumenata koje MongoDB treba skenirati. Često je najbolje stvoriti indeks za polja koja češće postavljate upite.

MongoDB indeksiranje slično je vašem koristiti indekse za optimizaciju SQL upita. Na primjer, za stvaranje uzlaznog indeksa na Ime polje:

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

Za popis vaših indeksa:

db.collection.getIndexes()

Gore navedeno je samo preambula. Postoji nekoliko drugih metoda za stvaranje indeksa u MongoDB-u.

11. Agregacija

Cjevovod agregacije, poboljšana verzija MapReducea, omogućuje vam pokretanje i pohranjivanje složenih izračuna iz MongoDB-a. Za razliku od MapReducea, koji zahtijeva odvojeno pisanje mape i funkcija redukcije JavaScript funkcije, agregacija je jednostavna i koristi samo ugrađene MongoDB metode.

Na primjer, razmotrite sljedeće podatke o prodaji:

Koristeći MongoDB-ovu agregaciju, možete izračunati i pohraniti ukupan broj prodanih proizvoda za svaku kategoriju na sljedeći način:

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

Gornji upit vraća sljedeće:

Ovladajte MongoDB upitima

MongoDB nudi mnoge metode postavljanja upita, uključujući značajke za poboljšanje izvedbe upita. Bez obzira na vaš programski jezik, gore navedene strukture upita rudimentarne su za interakciju s MongoDB bazom podataka.

Ipak, mogu postojati neka odstupanja u osnovnim sintaksama. Na primjer, dok neki programski jezici poput Pythona prepoznaju slučaj zmije, drugi, uključujući JavaScript, koriste slučaj deve. Obavezno istražite što radi za tehnologiju koju ste odabrali.