11 interogări și operații MongoDB pe care trebuie să le cunoașteți

MongoDB este una dintre cele mai dorite și admirate baze de date NoSQL pentru dezvoltare profesională. Flexibilitatea, scalabilitatea și capacitatea sa de a gestiona volume mari de date îl fac o alegere de top pentru aplicațiile moderne. Dacă doriți să stăpâniți interogările și operațiunile obișnuite ale MongoDB, sunteți în locul potrivit.

VIDEO MUO AL ZILEI

DEfilați PENTRU A CONTINUA CU CONȚINUT

Indiferent dacă doriți să preluați și să manipulați datele în mod eficient, să implementați modele robuste de date sau să construiți aplicații receptive, obținerea unei înțelegeri profunde a interogărilor și operațiunilor comune MongoDB vă va îmbunătăți, fără îndoială, abilitățile.

1. Creați sau comutați baze de date

Crearea unei baze de date local prin MongoDB Shell este simplă, mai ales dacă ați configurat un cluster la distanță. Puteți crea o nouă bază de date în MongoDB cu comanda de utilizare:

 use db_name 

În timp ce comanda de mai sus creează o nouă bază de date, o puteți folosi pentru a trece la o bază de date existentă fără a crea una nouă de la zero.

2. Aruncă baza de date

Mai întâi, comutați la baza de date pe care doriți să o eliminați folosind comanda de utilizare așa cum ați făcut anterior. Apoi aruncați baza de date folosind comanda dropDatabase():

 use db_name
db.dropDatabase()

3. Creați o colecție

Pentru a crea o colecție, comutați la baza de date țintă. Utilizați cuvântul cheie createCollection() pentru a crea o nouă colecție MongoDB:

 db.createCollection("collection_name")

Înlocuiți collection_name cu numele colecției alese.

  8 cele mai bune pluginuri Gedit Text Editor

4. Inserați documentul într-o colecție

În timp ce trimiteți date către o colecție, puteți insera un singur document sau o serie de documente.

Pentru a introduce un singur document:

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

De asemenea, puteți utiliza metoda de mai sus pentru a insera o serie de documente cu un singur ID:

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

Pentru a insera mai multe documente simultan, fiecare având ID-uri separate, utilizați cuvântul cheie insertMany:

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

5. Obțineți toate documentele dintr-o colecție

Puteți interoga toate documentele dintr-o colecție folosind cuvântul cheie find():

 db.collection_name.find()

Cele de mai sus returnează toate documentele din colecția specificată:

De asemenea, puteți limita datele returnate la un anumit număr. De exemplu, puteți folosi următoarea comandă pentru a obține doar primele două documente:

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

6. Filtrați documentele dintr-o colecție

Există multe modalități de a filtra documentele în MongoDB. Luați în considerare următoarele date, de exemplu:

Dacă interogați doar un anumit câmp dintr-un document, utilizați metoda find:

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

Cele de mai sus returnează toate documentele în care valoarea Likes este Wordle. Afișează numai numele și ignoră ID-ul documentului.

De asemenea, puteți filtra o colecție după un factor numeric. Să presupunem că doriți să obțineți numele tuturor utilizatorilor mai în vârstă de 21 de ani, utilizați operatorul $gt:

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

Ieșirea arată astfel:

Încercați să înlocuiți find cu findOne pentru a vedea ce se întâmplă. Cu toate acestea, există multe alte cuvinte cheie de filtrare:

  • $lt: Toate valorile mai mici decât cea specificată.
  • $gte: Valori egale sau mai mari decât cele specificate.
  • $lte: Valori care sunt mai mici sau egale cu cea definită.
  • $eq: Obține toate valorile egale cu cea specificată.
  • $ne: Toate valorile nu sunt egale cu cea specificată.
  • $in: Folosiți acest lucru atunci când interogați bazat pe o matrice. Primește toate valorile care se potrivesc cu oricare dintre elementele din matrice. Cuvântul cheie $nin face opusul.
  Cum să recuperați contul piratat muzical

7. Sortare interogări

Sortarea ajută la aranjarea interogării într-o anumită ordine. Puteți sorta în ordine descrescătoare sau crescătoare. Rețineți că sortarea necesită o referință numerică.

De exemplu, pentru a sorta în ordine crescătoare:

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

Pentru a sorta interogarea de mai sus în ordine descrescătoare, înlocuiți „1” cu „-1”.

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

8. Actualizați un document

Actualizările MongoDB necesită ca operatorii atomici să specifice modul în care doriți ca actualizarea să fie efectuată. Iată o listă de operatori atomici folosiți în mod obișnuit pe care îi puteți asocia cu o interogare de actualizare:

  • $set: Adăugați un câmp nou sau modificați un câmp existent.
  • $push: Inserați un element nou într-o matrice. Asociați-l cu operatorul $each pentru a insera mai multe elemente simultan.
  • $pull: Eliminați un element dintr-o matrice. Folosiți-l cu $in pentru a elimina multe articole dintr-o dată.
  • $unset: Eliminați un câmp dintr-un document.

Pentru a actualiza un document și a adăuga un câmp nou, de exemplu:

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

Cele de mai sus actualizează documentul specificat, după cum se arată:

Eliminarea câmpului de e-mail este simplă cu operatorul $unset:

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

Luați în considerare următoarele date eșantion:

Puteți insera un articol în câmpul matricei de articole existente folosind operatorul $push:

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

Iată rezultatul:

Utilizați operatorul $each pentru a insera mai multe elemente simultan:

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

Iată rezultatul:

După cum sa menționat, operatorul $pull elimină un element dintr-o matrice:

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

Datele actualizate arată astfel:

Includeți cuvântul cheie $in pentru a elimina multe elemente dintr-o matrice dintr-o dată:

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

9. Ștergeți un document sau un câmp

Cuvântul cheie deleteOne sau deleteMany aruncă în gunoi un document dintr-o colecție. Utilizați deleteOne pentru a elimina un document bazat pe un câmp specificat:

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

Dacă doriți să ștergeți multe documente cu chei comune, utilizați în schimb deleteMany. Interogarea de mai jos șterge toate documentele care conțin șah ca Like-uri.

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

10. Operația de indexare

Indexarea îmbunătățește performanța interogărilor prin eficientizarea numărului de documente pe care MongoDB trebuie să le scaneze. Cel mai bine este adesea să creați un index pe câmpurile pe care le interogați mai des.

  Care este raza de acțiune a unei rețele WiFi tipice

Indexarea MongoDB este similară cu modul în care utilizați indexurile pentru a optimiza interogările SQL. De exemplu, pentru a crea un index ascendent în câmpul Nume:

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

Pentru a vă lista indecșii:

 db.collection.getIndexes()

Cele de mai sus sunt doar un preambul. Există câteva alte metode pentru a crea un index în MongoDB.

11. Agregarea

Conducta de agregare, o versiune îmbunătățită a MapReduce, vă permite să rulați și să stocați calcule complexe din interiorul MongoDB. Spre deosebire de MapReduce, care necesită scrierea hărții și a funcțiilor de reducere în funcții JavaScript separate, agregarea este simplă și utilizează numai metode MongoDB încorporate.

Luați în considerare următoarele date de vânzări, de exemplu:

Folosind agregarea MongoDB, puteți calcula și stoca numărul total de produse vândute pentru fiecare categorie, după cum urmează:

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

Interogarea de mai sus returnează următoarele:

Master MongoDB Interogări

MongoDB oferă multe metode de interogare, inclusiv funcții pentru a îmbunătăți performanța interogărilor. Indiferent de limbajul dvs. de programare, structurile de interogare de mai sus sunt rudimentare pentru interacțiunea cu o bază de date MongoDB.

Totuși, pot exista unele discrepanțe în sintaxele de bază. De exemplu, în timp ce unele limbaje de programare precum Python recunosc carcasele de șarpe, altele, inclusiv JavaScript, folosesc carcasa de cămilă. Asigurați-vă că căutați ce funcționează pentru tehnologia aleasă.