CRUD -operationer for MongoDB i PHP

Indholdsfortegnelse
Webapplikationer fokuserer generelt på fire grundlæggende operationer, som de skal udføre mod deres persistens -system eller Databaser, disse operationer betragtes som nøgler, når de lærer at udvikle sig til dette miljø, henviser vi til Opret, læs, opdater og slet også kendt som URIGT for sit akronym på engelsk.
MongoDB tak til sin driver for PHP, giver os mulighed for at udføre disse fire operationer på en meget enkel måde, dog som leder af Ikke-relationelle databaser, vi kan ikke falde ind i fejlen ved at behandle alle ting, som om vi brugte et relationelt system som f.eks MySQL eller PostgreSQL.
KravFor at følge denne vejledning skal vi have en version af MongoDB i vores testmiljø, udover at have downloadet og aktiveret den tilsvarende driver til PHP, for mere information om, hvordan du opfylder disse krav, kan du se på følgende vejledning.
MongoDB blev skabt til at være meget effektiv i transaktioner og operationer, på denne måde kan du løse virkelige problemer uden at miste ydeevne. EN URIGT kræver ikke meget behandlingskraft i sig selv, men når tusindvis af anmodninger opstår for vores Database på kort tid er, hvor vi kan se hvordan MongoDB hjælper os med at opretholde ydeevnen.
Samlinger og dokumenter er meget kraftfulde enheder, da vi mangler en defineret struktur, vi kan gemme de data, vi ønsker, for at opretholde et rent og velordnet billede, derudover kan vi få adgang til data i simple forespørgsler, der i relationelle modeller kunne tage mellemliggende forespørgsler til os. Mange tabeller.
Det Databaser i MongoDB er kendt som samlinger, derfor kan vi ikke behandle dem som Databaser traditionelt, hvis ikke som et sæt dokumenter, der er grupperet under en differentiator med et navn.
Oprettelse af samlingFor at oprette en samling har vi ikke brug for nogen særlig kommando, simpelthen med den samme kommando, som vi vælger den, hvis den ikke findes, MongoDB Det vil stå for at oprette en ny med det navn, vi har angivet.
Denne enkelhed gør vores arbejde lettere, ud over at reducere mængden af ​​kode, som vi skal placere i vores applikationer. Lad os se i det følgende billede en eksempelkode, som vi kan vælge en samling med MongoDB:

Her ser vi, hvordan vi først opretter klasseobjektet Mongo (), dette er inkluderet, når du installerer den tilsvarende driver, derefter blot ved at bruge objektet og skrive et navn på Database er valgt eller oprettet. På dette tidspunkt skal vi være forsigtige, siden MongoDB det returnerer ikke en fejl, hvis Database det eksisterer ikke, det vil bare oprette et nyt, så vi er nødt til at foretage en dobbelttjek af de navne, vi skriver.
Endelig kan vi oprette en samling inde i Database kaldet retninger, og med dette vil vi have det grundlag, hvorpå vi kan udføre vores operationer URIGT.
For at udføre de øvrige operationer i URIGT Vi skal først have data, derfor er det første, vi lærer, at oprette dokumenter eller lave registreringsindsatser, som passer bedst til vores tekniske sprog.
Tak til chaufføren MongoDBVi er simpelthen nødt til at oprette et arrangement eller array med strukturen og de nødvendige data til vores nye post og derefter kalde metoden indsæt () forbindelsesmetode. Vi behøver ikke at have en defineret struktur eller følge et mønster for det. Hvis et dokument har et felt, og et andet ikke har det, påvirkes processen ikke.
Lad os i det følgende billede se kildekoden, der forklarer den førnævnte proces:

Der er et alternativ til metoden indsæt () og er metoden Gemme (), forskellen er, at Gemme () hvis der er angivet en unik identifikator, og den findes, opdateres den eksisterende post med de nye data.
I udviklerfællesskabet foreslår de at arbejde mere med Gemme () hvad med indsæt () at generere kode, der kan genbruges, men beslutningen er i hænderne på hver enkelt.
Som standard indsættes metoden i MongoDB er asynkron, betyder det, at mens Database du indsætter eller opdaterer posten PHP den fortsætter sin henrettelse uden at gå ned. Resultatet af denne adfærd er, at applikationen kører hurtigere, selvom databasemotoren ikke gør det.
Da denne adfærd ikke altid vil være nyttig for os, kan vi tvinge den til at opføre sig synkront ved at sende parameteren sikker når operationen udføres, vil dette forårsage PHP vent på svar fra MongoDB før du fortsætter med udførelsen af ​​dens instruktioner. Parameterstrukturen sikker er følgende:
$ collection-> insert ($ address, array ('safe' => true));

Som standard og medmindre vi angiver andet, MongoDB genererer automatisk de primære nøgler til dokumenterne under navnet _id, når man laver en indsæt () synkront indstilles og placeres nøglen i den matrix, vi lige har indsat.
Så hvis vi vil vide, hvad den unikke identifikator er, skal vi kun konsultere denne egenskab i arrayet, hvis vi følger det foregående eksempel, ville det kun være nok at gøre følgende:
$ id = $ samling ['_ id'];

Vi går nu videre til den anden operation, som er at læse de oplysninger, vi har i vores dokumenter eller Databaser. Her kan vi stille forespørgsler til den primære nøgle direkte eller til enhver anden kombination af egenskaber i vores dokument.
For at foretage søgningen bruger vi simpelthen metoden findone () og hertil kommer vi til at videregive et array med alle de elementer, som vi vil filtrere. Lad os se på det følgende billede en forespørgsel ved hjælp af en primær nøgle og en anden, der bruger andre dokumentegenskaber:

Hvis vi bemærker her, at søge efter primærnøgle, er det første, vi gør, at oprette et objekt af typen MongoId og du er overrasket over værdien af ​​det, det er nøglen til, at alt fungerer korrekt. På den anden side, når der forespørges efter egenskaber, er det kun nok at placere værdien inde i arrayet uden at skulle oprette objekter.
Standard MongoDB det returnerer det komplette dokument, når det har fundet et match, så hvis vi ikke vil have mere end en eller et par data fra det, skal vi angive det i en anden parameter, som er en matrix med de egenskaber eller felter, vi ønsker , lad os se i følgende kode, hvordan dette kan gøres:
$ result = $ collection-> findone (array ('_id' => $ id), array ('fornavn', 'efternavn'));

Når du placerer den tidligere kode, vil resultatvariablen have en matrix, der kun indeholder egenskaberne for- og efternavn i dokumentet, der matcher søgekriterierne.
Vi går nu til den tredje operation, dette er for at opdatere et dokument, der allerede er oprettet i vores samling, her skal vi være forsigtige, for hvis vi ikke placerer den korrekte formular, kan vi ende med at overskrive det originale dokument i stedet for at opdatere eller tilføje en ejendom .
For at undgå forvirring anbefales det at bruge $ sæt som er en operatør, der fortæller MongoDB at hvis parameteren eksisterer, vil den blive opdateret med den sendte værdi, og hvis den ikke findes, vil den blive oprettet. Dette giver os mulighed for at undgå fejl i vores applikation og endnu bedre giver os mulighed for at give vores applikation den ønskede funktionalitet. Lad os se, hvordan dette fungerer:

FORSTØRRE

Vi har da indset, hvordan vi kan ændre værdien af ​​byens ejendom i dette tilfælde, men hvis den ikke eksisterede i registreringsdatabasen, ville den blive genereret uden at ændre det, der allerede findes der.
Der er noget særligt, vi kan gøre i MongoDB og det kan ikke gøres i en relationel motor, og det er muligheden for tilføj arrays inde i vores dokumenterMed dette kan vi tilføje værdilister inden for en ejendom, så vi kunne generere stadig mere komplekse og komplette dokumenter til vores behov, alt sammen uden at skulle påvirke den generelle struktur for andre dokumenter, der eksisterer i samme samling.
Dette er den sidste operation, sletning er meget enkel, næsten lige så meget eller mere end tilføjelse eller opdatering, vi leder simpelthen efter et kriterium eller sletningsfilter, indlæser det i en matrix og udfører metoden fjern ().
Det eneste vi skal huske på er det MongoDB vil slette alle de dokumenter, der matcher dette kriterium, det er derfor, hvis vi kun vil slette et, skal vi bruge ejendommen bare en og læg den i Rigtigt. Lad os se nedenfor koden for at slette et dokument:

Med dette afslutter vi denne vejledning, vi har set på en grundlæggende, men funktionel måde, hvordan vi kan inkludere en URIGT på en ikke-relationel struktur som MongoDB fra PHP. Hvis vi kan mestre dette, skaber vi højtydende og meget fleksible applikationer, der hjælper os med at imponere vores brugere.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave